yet another rewrite of the producers...
[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   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
42     if(MirGlobal.getConfigBooleanProperty("Rsync")){
43       aSynchronizationFactory.addFactory(
44         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
45     }
46     else {
47       NullProducerFactory nullFactory = new NullProducerFactory();
48       nullFactory.addVerb("run");
49       aSynchronizationFactory.addFactory(nullFactory);
50     }
51   }
52
53   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
54     aStaticFactory.addFactory(
55       new StaticProducerFactory(
56           MirGlobal.getConfigProperty("Producer.Navigation.Template"),
57           "bundles.admin",
58           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/navigation.inc"));
59   }
60
61   protected void setupFactories(Map aFactoriesMap ) {
62
63     CompositeProducerFactory factory;
64
65     factory=new CompositeProducerFactory();
66     setupContentFactory(factory);
67     aFactoriesMap.put("content", factory);
68
69     factory=new CompositeProducerFactory();
70     setupStartPageFactory(factory);
71     aFactoriesMap.put("startpage", factory);
72
73     factory=new CompositeProducerFactory();
74     setupSynchronizationFactory(factory);
75     aFactoriesMap.put("synchronization", factory);
76
77     factory=new CompositeProducerFactory();
78     setupStaticFactory(factory);
79     aFactoriesMap.put("static", factory);
80
81     aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
82     aFactoriesMap.put("navigationold", new OldProducerAdapterFactory(new ProducerNavigation()));
83     aFactoriesMap.put("openposting", new OldProducerAdapterFactory(new ProducerOpenPosting()));
84     aFactoriesMap.put("topics", new OldProducerAdapterFactory(new ProducerTopics()));
85   };
86 }