merge of localization branch into HEAD. mh and zap
[mir.git] / source / mircoders / localizer / basic / MirBasicWriterEngine.java
1 package mircoders.localizer.basic;
2
3 import java.util.*;
4 import java.io.*;
5 import mir.generator.*;
6 import mircoders.localizer.*;
7
8 public class MirBasicWriterEngine implements WriterEngine {
9   private String defaultEncoding;
10
11   public MirBasicWriterEngine(String aDefaultEncoding) {
12     defaultEncoding = aDefaultEncoding;
13   }
14
15   public Object openWriter(String anIdentifier, String anEncoding) throws MirLocalizerFailure {
16     String encoding;
17     File file;
18     File dir;
19
20     if (anEncoding!=null && !anEncoding.equals(""))
21       encoding = anEncoding;
22     else
23       encoding = defaultEncoding;
24 //      MirGlobal.getConfigProperty("Mir.DefaultEncoding");
25
26     try {
27       file = new File( anIdentifier );
28       dir = new File(file.getParent());
29         if (dir!=null && !dir.exists()){
30           dir.mkdirs();
31       }
32
33       return new PrintWriter(
34         new OutputStreamWriter(
35           new FileOutputStream(file), encoding
36         )
37       );
38     }
39     catch (Throwable t) {
40       throw new MirLocalizerFailure("Failure while opening a PrintWriter: "+t.getMessage(),t);
41     }
42   };
43
44   public void closeWriter(Object aWriter) {
45     ((PrintWriter) aWriter).close();
46   };
47 }