removed the CompositeProducerFactory
[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(CompositeProducerNode aProducerNode) {
15     EntityEnumeratingProducerNode contentNode = null;
16     aProducerNode.clear();
17
18     try {
19       contentNode =
20           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
21             new CompositeProducerNode( new ProducerNode[] {
22               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
23                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
24                     new CompositeProducerNode( new ProducerNode[] {
25                       new GeneratingProducerNode(
26                           "/producer/euskalherria.indymedia.org/article.template",
27                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
28                       ),
29                       new FileDateSettingProducerNode(
30                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
31                           "content.date.date"
32                       )
33                     } )
34                 )
35               ),
36               new ContentMarkingProducerNode( "content")
37             } )
38           );
39     }
40     catch (Throwable t) {
41     }
42
43     contentNode.addVerb( "all", "is_published='1'", "" );
44     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
45
46     aProducerNode.addSubNode( contentNode );
47
48   }
49
50   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
51     aProducerNode.clear();
52     try {
53       aProducerNode.addSubNode(
54             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
55                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
56               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
57                             "", "code", 10, 0,
58                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
59                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
60                     new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
61                               "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
62                       new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
63                               "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
64                         new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
65                                   "", "webdb_create desc", 5, 0,
66                           new GeneratingProducerNode(
67                               "/producer/euskalherria.indymedia.org/startpage.template",
68                               "${config.storageRoot}/${language.code}/index.shtml"
69                           )
70                         )
71                       )
72                     )
73                   )
74                 )
75               )
76             )
77       );
78     }
79     catch (Throwable t) {
80     }
81   }
82
83   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
84     aProducerNode.clear();
85
86     try {
87       aProducerNode.addSubNode(
88           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
89                   "", "code", 10, 0,
90             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
91               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
92                 new GeneratingProducerNode(
93                     "/producer/euskalherria.indymedia.org/navigation.template",
94                     "${config.storageRoot}/${language.code}/navigation.inc"
95                 )
96               )
97             )
98           )
99       );
100     }
101     catch (Throwable t) {
102     }
103   }
104
105   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
106     aProducerNode.clear();
107
108     EntityBatchingProducerNode topicPageNode = null;
109
110     try {
111       topicPageNode =
112         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
113               "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0,
114           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
115                   "", "code", 10, 0,
116             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
117               new ResourceBundleProducerNode("lang", "producer_${language.code}",
118                 new GeneratingProducerNode(
119                     "/producer/euskalherria.indymedia.org/topic.template",
120                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
121                 )
122               )
123             )
124           ),
125           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
126                   "", "code", 10, 0,
127             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
128               new ResourceBundleProducerNode("lang", "producer_${language.code}",
129                 new GeneratingProducerNode(
130                     "/producer/euskalherria.indymedia.org/topicnavigation.template",
131                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
132                 )
133               )
134             )
135           )
136         );
137       topicPageNode.addVerb("all", -1);
138       topicPageNode.addVerb("new", 3);
139
140       aProducerNode.addSubNode(
141           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
142             new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
143                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
144               new EntityListProducerNode("topicfeatures", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
145                     "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 10, 0,
146                 topicPageNode
147               )
148             )
149           )
150       );
151     }
152     catch (Throwable t) {
153     }
154
155   }
156
157   protected void setupFactories(Map aFactoriesMap ) {
158     super.setupFactories(aFactoriesMap);
159   }
160 }