support for custom encodings added to producers
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerToolLocalizer.java
index a04bff9..c8cbc53 100755 (executable)
@@ -1,6 +1,59 @@
 package mircoders.localizer.basic;
 
+import java.util.*;
+import java.io.*;
+import freemarker.template.utility.*;
+import mir.misc.*;
 import mircoders.localizer.*;
+import mircoders.global.*;
 
 public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
+
+  public void initializeGenerationValueSet(Map aValueSet) {
+    // ML: these config settings will be included more beautifully as soon as the new config system is in place
+
+    Map configMap = new HashMap();
+
+               configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
+               configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
+    configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
+               configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
+               configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
+               configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
+               configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
+               configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
+               configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
+               configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
+               configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
+               configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
+               configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
+
+    aValueSet.put("config", configMap);
+  };
+
+  public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException {
+    File file;
+    File dir;
+
+    try {
+      file = new File( anIdentifier );
+      dir = new File(file.getParent());
+        if (dir!=null && !dir.exists()){
+          dir.mkdirs();
+      }
+
+      return new PrintWriter(
+        new OutputStreamWriter(
+          new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
+        )
+      );
+    }
+    catch (Throwable t) {
+      throw new MirLocalizerException(t);
+    }
+  };
+
+  public void closeWriter(PrintWriter aWriter) {
+    aWriter.close();
+  };
 }