introduced AdapterEntityModel
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerLocalizer.java
index 00c1f0e..d9a4178 100755 (executable)
@@ -2,16 +2,29 @@ package mircoders.localizer.basic;
 
 import java.util.*;
 import mir.producer.*;
+import mir.misc.*;
+import mir.entity.adapter.*;
+import mircoders.global.*;
 import mircoders.global.*;
 import mircoders.localizer.*;
 import mircoders.producer.*;
 
 public class MirBasicProducerLocalizer implements MirProducerLocalizer {
   private Map producerFactories;
+  protected EntityAdapterModel model;
+  protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
 
   public MirBasicProducerLocalizer() {
     producerFactories = new HashMap();
 
+    try {
+      model = MirGlobal.localizer().dataModel().adapterModel();
+    }
+    catch (Throwable t) {
+      logger.printError("MirBasicProducerLocalizer(): Exception "+t.getMessage());
+      model = new EntityAdapterModel();
+    }
+
     setupFactories(producerFactories);
   }
 
@@ -19,59 +32,56 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer {
     return producerFactories;
   };
 
-  protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
-    aContentFactory.addFactory(
-      new ContentProducerFactory(
-      MirGlobal.getConfigProperty("Producer.Content.Template"),
-      "bundles.admin",
-      MirGlobal.getConfigProperty("Producer.StorageRoot"),
-      ".shtml",
-      Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
+  protected void setupContentFactory(CompositeProducerNode aProducerNode) {
   }
 
-  protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
-    aStartPageFactory.addFactory(
-      new StartPageProducerFactory(
-      MirGlobal.getConfigProperty("Producer.StartPage.Template"),
-      "bundles.admin",
-      MirGlobal.getConfigProperty("Producer.StorageRoot") + "/index.shtml",
-      MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
-      MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
+  protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
   }
 
-  protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
+  protected void setupSynchronizationFactory(CompositeProducerNode aProducerNode) {
     if(MirGlobal.getConfigBooleanProperty("Rsync")){
-      aSynchronizationFactory.addFactory(
-        new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
-    }
-    else {
-      NullProducerFactory nullFactory = new NullProducerFactory();
-      nullFactory.addVerb("run");
-      aSynchronizationFactory.addFactory(nullFactory);
+      aProducerNode.addSubNode(
+        new ScriptCallingProducerNode(MirGlobal.getConfigProperty("Rsync.Script.Path"))
+      );
     }
   }
 
+  protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
+  }
+
+  protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
+  }
+
   protected void setupFactories(Map aFactoriesMap ) {
+    CompositeProducerNode node;
 
-    CompositeProducerFactory factory;
+    node = new CompositeProducerNode();
+    setupContentFactory( node );
+    aFactoriesMap.put("content", new NodedProducerFactory(node));
 
-    factory=new CompositeProducerFactory();
-    setupContentFactory(factory);
-    aFactoriesMap.put("content", factory);
+    node = new CompositeProducerNode();
+    setupStartPageFactory( node );
+    aFactoriesMap.put("startpage", new NodedProducerFactory(node));
 
-    factory=new CompositeProducerFactory();
-    setupStartPageFactory(factory);
-    aFactoriesMap.put("startpage", factory);
+    node = new CompositeProducerNode();
+    setupSynchronizationFactory( node );
+    aFactoriesMap.put("synchronization", new NodedProducerFactory(node));
 
-    factory=new CompositeProducerFactory();
-    setupSynchronizationFactory(factory);
-    aFactoriesMap.put("synchronization", factory);
+    node = new CompositeProducerNode();
+    setupStaticFactory( node );
+    aFactoriesMap.put("static", new NodedProducerFactory(node));
 
-    aFactoriesMap.put("oldstartpage", new OldProducerAdapterFactory(new ProducerStartPage()));
-    aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
-    aFactoriesMap.put("navigation", new OldProducerAdapterFactory(new ProducerNavigation()));
-    aFactoriesMap.put("openposting", new OldProducerAdapterFactory(new ProducerOpenPosting()));
-    aFactoriesMap.put("topics", new OldProducerAdapterFactory(new ProducerTopics()));
+    node = new CompositeProducerNode();
+    setupTopicsFactory( node );
+    aFactoriesMap.put("topics", new NodedProducerFactory(node));
 
+    aFactoriesMap.put("media",
+      new CompositeProducerFactory( new ProducerFactory[] {
+        new OldProducerAdapterFactory(new ProducerImages()),
+        new OldProducerAdapterFactory(new ProducerAudio()),
+        new OldProducerAdapterFactory(new ProducerVideo()),
+        new OldProducerAdapterFactory(new ProducerOther())
+      } )
+    );
   };
 }