At last the EntityBatchingProducerNode is working. This will replace the old
[mir.git] / source / mircoders / producer / StartPageProducer.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 StartPageProducer implements mir.producer.Producer {
20
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;
28
29   EntityBrowser browser;
30
31   public StartPageProducer(
32     String aGeneratorIdentifier,
33     String aResourceBundle,
34     String anOutputFile,
35
36     EntityList aNewswireItems,
37     EntityList aFeatures,
38     EntityList aTopics,
39     EntityList aBreakingNews) {
40
41     generatorIdentifier=aGeneratorIdentifier;
42     resourceBundle=aResourceBundle;
43     outputFile=anOutputFile;
44     newswireItems = aNewswireItems;
45     features = aFeatures;
46     topics = aTopics;
47     breakingNews = aBreakingNews;
48   }
49
50   public void produce( PrintWriter aLogger ) throws ProducerFailure {
51     Map generationValues = new HashMap();
52     Map dataMap = new HashMap();
53
54     try {
55       MirGlobal.localizer().producerTool().initializeGenerationValueSet(generationValues);
56
57                   MessageResources messages = MessageResources.getMessageResources(resourceBundle);
58                   generationValues.put("lang", new MessageMethodModel(null, messages) );
59
60                   generationValues.put("data", dataMap);
61
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);
67
68       aLogger.println("StartPageProducer.produce:");
69       aLogger.println("generating: " + outputFile);
70
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);
75
76       aLogger.println("done");
77     }
78     catch (Exception e) {
79       aLogger.println("exception while generating " + outputFile + ":");
80       aLogger.println(e.getMessage());
81       e.printStackTrace(aLogger);
82       aLogger.flush();
83     }
84   }
85 }