i changed the exception-handling of the new producers and localizers to use the multe...
[mir.git] / source / mircoders / producer / StaticProducer.java
1 package mircoders.producer;
2
3 import java.io.*;
4 import java.util.*;
5
6 import mir.misc.*;
7 //import mir.entity.*;
8 import mir.producer.*;
9 import mir.generator.*;
10
11 import mircoders.localizer.*;
12 import mircoders.global.*;
13 //import mircoders.entity.*;
14
15 //import mircoders.module.*;
16
17 import org.apache.struts.util.MessageResources;
18
19 public class StaticProducer implements mir.producer.Producer {
20
21   private String generatorIdentifier;
22   private String resourceBundle;
23   private String outputFile;
24
25   public StaticProducer(
26     String aGeneratorIdentifier,
27     String aResourceBundle,
28     String anOutputFile) {
29
30     generatorIdentifier=aGeneratorIdentifier;
31     resourceBundle=aResourceBundle;
32     outputFile=anOutputFile;
33   }
34
35   public void produce( PrintWriter aLogger ) throws ProducerFailure {
36     Map generationValues = new HashMap();
37     Map dataMap = new HashMap();
38
39     try {
40       MirGlobal.localizer().producerTool().initializeGenerationValueSet(generationValues);
41
42                   MessageResources messages = MessageResources.getMessageResources(resourceBundle);
43                   generationValues.put("lang", new MessageMethodModel(null, messages) );
44
45                   generationValues.put("data", dataMap);
46
47       dataMap.put("dc_now", StringUtil.date2w3DateTime(new GregorianCalendar()));
48
49       aLogger.println("StaticProducer.produce:");
50       aLogger.println("  generating: " + outputFile + " from " + generatorIdentifier);
51
52       Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
53       PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(outputFile);
54       generator.generate(printWriter, generationValues, aLogger);
55       MirGlobal.localizer().producerTool().closeWriter(printWriter);
56
57       aLogger.println("done");
58     }
59     catch (Exception e) {
60       aLogger.println("exception while generating " + outputFile + ":");
61       aLogger.println(e.getMessage());
62       e.printStackTrace(aLogger);
63       aLogger.flush();
64     }
65   }
66 }