1 package mircoders.producer;
9 import mir.generator.*;
11 import mircoders.localizer.*;
12 import mircoders.global.*;
13 import mircoders.entity.*;
15 import mircoders.module.*;
17 import org.apache.struts.util.MessageResources;
19 public class StartPageProducer implements mir.producer.Producer {
21 private String generatorIdentifier;
22 private String resourceBundle;
23 private String outputFile;
24 private EntityList newswireItems;
25 private EntityList features;
26 private EntityList topics;
27 private EntityList breakingNews;
29 EntityBrowser browser;
31 public StartPageProducer(
32 String aGeneratorIdentifier,
33 String aResourceBundle,
36 EntityList aNewswireItems,
39 EntityList aBreakingNews) {
41 generatorIdentifier=aGeneratorIdentifier;
42 resourceBundle=aResourceBundle;
43 outputFile=anOutputFile;
44 newswireItems = aNewswireItems;
47 breakingNews = aBreakingNews;
50 public void produce( PrintWriter aLogger ) throws ProducerFailure {
51 Map generationValues = new HashMap();
52 Map dataMap = new HashMap();
55 MirGlobal.localizer().producerTool().initializeGenerationValueSet(generationValues);
57 MessageResources messages = MessageResources.getMessageResources(resourceBundle);
58 generationValues.put("lang", new MessageMethodModel(null, messages) );
60 generationValues.put("data", dataMap);
62 dataMap.put("dc_now", StringUtil.date2w3DateTime(new GregorianCalendar()));
63 dataMap.put("newswire", newswireItems);
64 dataMap.put("features", features);
65 dataMap.put("breakingnews", breakingNews);
66 dataMap.put("topics", topics);
68 aLogger.println("StartPageProducer.produce:");
69 aLogger.println("generating: " + outputFile);
71 Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
72 PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(outputFile);
73 generator.generate(printWriter, generationValues, aLogger);
74 MirGlobal.localizer().producerTool().closeWriter(printWriter);
76 aLogger.println("done");
79 aLogger.println("exception while generating " + outputFile + ":");
80 aLogger.println(e.getMessage());
81 e.printStackTrace(aLogger);