support for custom encodings added to producers
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerToolLocalizer.java
1 package mircoders.localizer.basic;
2
3 import java.util.*;
4 import java.io.*;
5 import freemarker.template.utility.*;
6 import mir.misc.*;
7 import mircoders.localizer.*;
8 import mircoders.global.*;
9
10 public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
11
12   public void initializeGenerationValueSet(Map aValueSet) {
13     // ML: these config settings will be included more beautifully as soon as the new config system is in place
14
15     Map configMap = new HashMap();
16
17                 configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
18                 configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
19     configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
20                 configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
21                 configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
22                 configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
23                 configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
24                 configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
25                 configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
26                 configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
27                 configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
28                 configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
29                 configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
30
31     aValueSet.put("config", configMap);
32   };
33
34   public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException {
35     File file;
36     File dir;
37
38     try {
39       file = new File( anIdentifier );
40       dir = new File(file.getParent());
41         if (dir!=null && !dir.exists()){
42           dir.mkdirs();
43       }
44
45       return new PrintWriter(
46         new OutputStreamWriter(
47           new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
48         )
49       );
50     }
51     catch (Throwable t) {
52       throw new MirLocalizerException(t);
53     }
54   };
55
56   public void closeWriter(PrintWriter aWriter) {
57     aWriter.close();
58   };
59 }