3c7216c8b6e2fd2fb956e8fe0830bc758d72ccaa
[mir.git] / source / mirlocal / euskalherria.indymedia.org / EHProducerLocalizer.java
1 package mirlocal.euskalherria.indymedia.org;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10 import mircoders.entity.adapter.*;
11
12 public class EHProducerLocalizer extends MirBasicProducerLocalizer {
13
14   protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
15     EntityEnumeratingProducerNode contentNode = null;
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
20             new CompositeProducerNode( new ProducerNode[] {
21               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
22                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
23                     new CompositeProducerNode( new ProducerNode[] {
24                       new GeneratingProducerNode(
25                           "/producer/euskalherria.indymedia.org/article.template",
26                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
27                       ),
28                       new FileDateSettingProducerNode(
29                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
30                           "content.date.date"
31                       )
32                     } )
33                 )
34               )
35             } )
36           );
37     }
38     catch (Throwable t) {
39     }
40
41     contentNode.addVerb( "all", "is_published='1'", "" );
42     contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
43
44     aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
45
46   }
47
48   protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
49     ProducerNode startPageNode = null;
50
51     try {
52       startPageNode =
53             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
54                     "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40,
55               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
56                             "", "code", 10,
57                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
58                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
59                     new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
60                               "is_published='1' and to_article_type = 4", "date desc, webdb_create desc", 1,
61                       new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
62                               "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
63                         new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
64                                   "", "webdb_create desc", 5,
65                           new GeneratingProducerNode(
66                               "/producer/euskalherria.indymedia.org/startpage.template",
67                               "${config.storageRoot}/${language.code}/index.shtml"
68                           )
69                         )
70                       )
71                     )
72                   )
73                 )
74               )
75             );
76     }
77     catch (Throwable t) {
78     }
79
80     aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
81   }
82
83   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
84     if(MirGlobal.getConfigBooleanProperty("Rsync")){
85       aSynchronizationFactory.addFactory(
86         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
87     }
88     else {
89       NullProducerFactory nullFactory = new NullProducerFactory();
90       nullFactory.addVerb("run");
91       aSynchronizationFactory.addFactory(nullFactory);
92     }
93   }
94
95   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
96     ProducerNode staticNode = null;
97
98     try {
99       staticNode =
100           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
101                   "", "code", 10,
102             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
103               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
104                 new GeneratingProducerNode(
105                     "/producer/euskalherria.indymedia.org/navigation.template",
106                     "${config.storageRoot}/${language.code}/navigation.inc"
107                 )
108               )
109             )
110           );
111     }
112     catch (Throwable t) {
113     }
114
115     aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
116   }
117
118   protected void setupFactories(Map aFactoriesMap ) {
119     super.setupFactories(aFactoriesMap);
120   }
121 }