generatingProducerNode now has an encoding parameter
authorzapata <zapata>
Fri, 5 Jul 2002 04:00:28 +0000 (04:00 +0000)
committerzapata <zapata>
Fri, 5 Jul 2002 04:00:28 +0000 (04:00 +0000)
source/mircoders/localizer/MirProducerAssistantLocalizer.java
source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java
source/mircoders/producer/GeneratingProducerNode.java

index d7af9e0..102e0af 100755 (executable)
@@ -5,7 +5,7 @@ import java.io.*;
 
 public interface MirProducerAssistantLocalizer {
   public void initializeGenerationValueSet(Map aValueSet) throws MirLocalizerException, MirLocalizerFailure;
-  public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException, MirLocalizerFailure;
+  public PrintWriter openWriter(String anIdentifier, String anEncoding) throws MirLocalizerException, MirLocalizerFailure;
   public void closeWriter(PrintWriter aWriter) throws MirLocalizerException, MirLocalizerFailure;
   public String filterText(String aText) throws MirLocalizerException, MirLocalizerFailure;
 }
index 761fe58..e4db339 100755 (executable)
@@ -70,10 +70,16 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
     aValueSet.put("articletype", articleTypeMap);
   };
 
-  public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure {
+  public PrintWriter openWriter(String anIdentifier, String anEncoding) throws MirLocalizerFailure {
+    String encoding;
     File file;
     File dir;
 
+    if (anEncoding!=null && !anEncoding.equals(""))
+      encoding = anEncoding;
+    else
+      encoding = MirGlobal.getConfigProperty("Mir.DefaultEncoding");
+
     try {
       file = new File( anIdentifier );
       dir = new File(file.getParent());
@@ -83,7 +89,7 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL
 
       return new PrintWriter(
         new OutputStreamWriter(
-          new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
+          new FileOutputStream(file), anEncoding
         )
       );
     }
index 53be087..c19b90d 100755 (executable)
@@ -11,10 +11,15 @@ import mircoders.localizer.*;
 public class GeneratingProducerNode implements ProducerNode {
   private String generatorExpression;
   private String destinationExpression;
+  private String encodingExpression;
 
-  public GeneratingProducerNode(String aGenerator, String aDestination) {
+  public GeneratingProducerNode(String aGenerator, String aDestination, String anEncoding) {
     generatorExpression=aGenerator;
     destinationExpression=aDestination;
+    encodingExpression=anEncoding;
+  }
+  public GeneratingProducerNode(String aGenerator, String aDestination) {
+    this(aGenerator, aDestination, "");
   }
 
   public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
@@ -22,25 +27,26 @@ public class GeneratingProducerNode implements ProducerNode {
     PrintWriter printWriter;
     String generatorIdentifier;
     String destinationIdentifier;
+    String encodingIdentifier;
 
-         long startTime;
-         long endTime;
+    long startTime;
+    long endTime;
 
-         startTime = System.currentTimeMillis();
+    startTime = System.currentTimeMillis();
     try {
-
       destinationIdentifier = ParameterExpander.expandExpression( aValueMap, destinationExpression );
       generatorIdentifier = ParameterExpander.expandExpression( aValueMap, generatorExpression );
+      encodingIdentifier = ParameterExpander.expandExpression( aValueMap, encodingExpression );
 
-      aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier);
+      aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier + " using encoding " + encodingIdentifier);
       aLogger.flush();
-      printWriter = MirGlobal.localizer().producerAssistant().openWriter( destinationIdentifier );
+      printWriter = MirGlobal.localizer().producerAssistant().openWriter( destinationIdentifier, encodingIdentifier);
       generator = MirGlobal.localizer().generators().makeGenerator( generatorIdentifier );
       generator.generate(printWriter, aValueMap, aLogger);
       MirGlobal.localizer().producerAssistant().closeWriter( printWriter );
-       }
-       catch (Throwable t) {
-         aLogger.println("  error while generating: " + t.getMessage());
+    }
+    catch (Throwable t) {
+      aLogger.println("  error while generating: " + t.getMessage());
       aLogger.flush();
     }
     endTime = System.currentTimeMillis();