9f2876d42d0eaee58a9b13f0382ac403a2ba45cc
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerLocalizer.java
1 package mircoders.localizer.basic;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.producer.*;
8
9 public class MirBasicProducerLocalizer implements MirProducerLocalizer {
10   private Map producerFactories;
11
12   public MirBasicProducerLocalizer() {
13     producerFactories = new HashMap();
14
15     setupFactories(producerFactories);
16   }
17
18   public Map factories() {
19     return producerFactories;
20   };
21
22   protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
23     aContentFactory.addFactory(
24       new ContentProducerFactory(
25       MirGlobal.getConfigProperty("Producer.Content.Template"),
26       "bundles.admin",
27       MirGlobal.getConfigProperty("Producer.StorageRoot") + "/${contentyear}/${contentmonth}/${contentid}.shtml",
28       Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
29   }
30
31   protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
32     aStartPageFactory.addFactory(
33       new StartPageProducerFactory(
34           MirGlobal.getConfigProperty("Producer.StartPage.Template"),
35           "bundles.admin",
36           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/index.shtml",
37           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
38           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
39
40
41     aStartPageFactory.addFactory(
42       new TopicStartPageProducerFactory(
43           MirGlobal.getConfigProperty("Producer.StartPage.Template"),
44           "bundles.admin",
45           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/${filename}index.shtml",
46           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
47           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
48   }
49
50   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
51     if(MirGlobal.getConfigBooleanProperty("Rsync")){
52       aSynchronizationFactory.addFactory(
53         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
54     }
55     else {
56       NullProducerFactory nullFactory = new NullProducerFactory();
57       nullFactory.addVerb("run");
58       aSynchronizationFactory.addFactory(nullFactory);
59     }
60   }
61
62   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
63     aStaticFactory.addFactory(
64       new StaticProducerFactory(
65           MirGlobal.getConfigProperty("Producer.Navigation.Template"),
66           "bundles.admin",
67           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/navigation.inc"));
68   }
69
70   protected void setupFactories(Map aFactoriesMap ) {
71
72     CompositeProducerFactory factory;
73
74     factory=new CompositeProducerFactory();
75     setupContentFactory(factory);
76     aFactoriesMap.put("content", factory);
77
78     factory=new CompositeProducerFactory();
79     setupStartPageFactory(factory);
80     aFactoriesMap.put("startpage", factory);
81
82     factory=new CompositeProducerFactory();
83     setupSynchronizationFactory(factory);
84     aFactoriesMap.put("synchronization", factory);
85
86     factory=new CompositeProducerFactory();
87     setupStaticFactory(factory);
88     aFactoriesMap.put("static", factory);
89
90     aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
91     aFactoriesMap.put("navigationold", new OldProducerAdapterFactory(new ProducerNavigation()));
92     aFactoriesMap.put("openposting", new OldProducerAdapterFactory(new ProducerOpenPosting()));
93     aFactoriesMap.put("topics", new OldProducerAdapterFactory(new ProducerTopics()));
94   };
95 }