+package mircoders.producer;
+
+import java.io.*;
+import java.util.*;
+
+import mir.misc.*;
+//import mir.entity.*;
+import mir.producer.*;
+import mir.generator.*;
+
+import mircoders.localizer.*;
+import mircoders.global.*;
+//import mircoders.entity.*;
+
+//import mircoders.module.*;
+
+import org.apache.struts.util.MessageResources;
+
+public class StaticProducer implements mir.producer.Producer {
+
+ private String generatorIdentifier;
+ private String resourceBundle;
+ private String outputFile;
+
+ public StaticProducer(
+ String aGeneratorIdentifier,
+ String aResourceBundle,
+ String anOutputFile) {
+
+ generatorIdentifier=aGeneratorIdentifier;
+ resourceBundle=aResourceBundle;
+ outputFile=anOutputFile;
+ }
+
+ public void produce( PrintWriter aLogger ) throws ProducerException {
+ Map generationValues = new HashMap();
+ Map dataMap = new HashMap();
+
+ try {
+ MirGlobal.localizer().producerTool().initializeGenerationValueSet(generationValues);
+
+ MessageResources messages = MessageResources.getMessageResources(resourceBundle);
+ generationValues.put("lang", new MessageMethodModel(null, messages) );
+
+ generationValues.put("data", dataMap);
+
+ dataMap.put("dc_now", StringUtil.date2w3DateTime(new GregorianCalendar()));
+
+ aLogger.println("StaticProducer.produce:");
+ aLogger.println(" generating: " + outputFile + " from " + generatorIdentifier);
+
+ Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
+ PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(outputFile);
+ generator.generate(printWriter, generationValues, aLogger);
+ MirGlobal.localizer().producerTool().closeWriter(printWriter);
+
+ aLogger.println("done");
+ }
+ catch (Exception e) {
+ aLogger.println("exception while generating " + outputFile + ":");
+ aLogger.println(e.getMessage());
+ e.printStackTrace(aLogger);
+ aLogger.flush();
+ }
+ }
+}