implemented StaticProducer + factory
authorzapata <zapata>
Thu, 2 May 2002 00:25:38 +0000 (00:25 +0000)
committerzapata <zapata>
Thu, 2 May 2002 00:25:38 +0000 (00:25 +0000)
source/mircoders/localizer/basic/MirBasicProducerLocalizer.java
source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java
source/mircoders/producer/StaticProducer.java [new file with mode: 0755]
source/mircoders/producer/StaticProducerFactory.java [new file with mode: 0755]

index c5cacee..9f2876d 100755 (executable)
@@ -59,6 +59,14 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer {
     }
   }
 
+  protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
+    aStaticFactory.addFactory(
+      new StaticProducerFactory(
+          MirGlobal.getConfigProperty("Producer.Navigation.Template"),
+          "bundles.admin",
+          MirGlobal.getConfigProperty("Producer.StorageRoot") + "/navigation.inc"));
+  }
+
   protected void setupFactories(Map aFactoriesMap ) {
 
     CompositeProducerFactory factory;
@@ -75,10 +83,12 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer {
     setupSynchronizationFactory(factory);
     aFactoriesMap.put("synchronization", factory);
 
-
+    factory=new CompositeProducerFactory();
+    setupStaticFactory(factory);
+    aFactoriesMap.put("static", factory);
 
     aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
-    aFactoriesMap.put("navigation", new OldProducerAdapterFactory(new ProducerNavigation()));
+    aFactoriesMap.put("navigationold", new OldProducerAdapterFactory(new ProducerNavigation()));
     aFactoriesMap.put("openposting", new OldProducerAdapterFactory(new ProducerOpenPosting()));
     aFactoriesMap.put("topics", new OldProducerAdapterFactory(new ProducerTopics()));
   };
index c8cbc53..8a5eb8c 100755 (executable)
@@ -4,6 +4,9 @@ import java.util.*;
 import java.io.*;
 import freemarker.template.utility.*;
 import mir.misc.*;
+import mir.entity.*;
+import mircoders.module.*;
+import mircoders.storage.*;
 import mircoders.localizer.*;
 import mircoders.global.*;
 
@@ -29,6 +32,28 @@ public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
                configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
 
     aValueSet.put("config", configMap);
+
+    EntityList topicList=null;
+    EntityList entityList=null;
+    EntityList parentList=null;
+
+    try {
+      ModuleLinksImcs linksImcsModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
+      ModuleTopics topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
+
+      topicList = topicsModule.getTopicsList();
+      entityList = linksImcsModule.getByWhereClause("", "sortpriority, title", -1);
+      parentList = linksImcsModule.getByWhereClause("to_parent_id=NULL", "sortpriority, title", -1);
+
+    }
+    catch (Throwable t) {
+      System.out.println("initializeGenerationValueSet: Exception "+t.getMessage());
+      t.printStackTrace(System.out);
+    }
+
+    aValueSet.put("topics", topicList);
+    aValueSet.put("imclist", entityList);
+    aValueSet.put("parentlist", parentList);
   };
 
   public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException {
diff --git a/source/mircoders/producer/StaticProducer.java b/source/mircoders/producer/StaticProducer.java
new file mode 100755 (executable)
index 0000000..67ea4f7
--- /dev/null
@@ -0,0 +1,66 @@
+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();
+    }
+  }
+}
diff --git a/source/mircoders/producer/StaticProducerFactory.java b/source/mircoders/producer/StaticProducerFactory.java
new file mode 100755 (executable)
index 0000000..df703e1
--- /dev/null
@@ -0,0 +1,39 @@
+package mircoders.producer;
+
+import java.util.*;
+import mir.producer.*;
+
+public class StaticProducerFactory implements ProducerFactory {
+  private String generatorIdentifier;
+  private String resourceBundle;
+  private String outputFile;
+
+  public StaticProducerFactory(
+    String aGeneratorIdentifier,
+    String aResourceBundle,
+    String anOutputFile) {
+
+    generatorIdentifier = aGeneratorIdentifier;
+    resourceBundle = aResourceBundle;
+    outputFile = anOutputFile;
+  }
+
+
+  public mir.producer.Producer makeProducer(String aVerb) throws ProducerException {
+    try {
+      return new StaticProducer( generatorIdentifier, resourceBundle, outputFile );
+    }
+    catch (Throwable e) {
+      throw new ProducerException(e);
+    }
+  };
+
+  public Iterator verbs() {
+    Vector verbList = new Vector();
+
+    verbList.add("all");
+
+    return verbList.iterator();
+  };
+}
+