introduced AdapterEntityModel
[mir.git] / source / mirlocal / bolivia.indymedia.org / BoliviaProducerLocalizer.java
1 package mirlocal.bolivia.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
11 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
12
13   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
14     EntityEnumeratingProducerNode contentNode = null;
15     aProducerNode.clear();
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", model, "content",
20             new CompositeProducerNode( new ProducerNode[] {
21               new EntityEnumeratingProducerNode( "language", model, "language", "", "",
22                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
23                     new CompositeProducerNode( new ProducerNode[] {
24                       new GeneratingProducerNode(
25                           "/producer/bolivia.indymedia.org/article.template",
26                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
27                       ),
28                       new GeneratingProducerNode(
29                           "/producer/bolivia.indymedia.org/printablecontent.template",
30                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo"
31                       ),
32                       new PDFGeneratingProducerNode(
33                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo",
34                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.pdf"
35                       ),
36                       new ContentMarkingProducerNode( "content" )
37                     } )
38                 )
39               ),
40               new ContentMarkingProducerNode( "content")
41             } )
42           );
43     }
44     catch (Throwable t) {
45       logger.printError("BoliviaProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
46     }
47
48     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
49     contentNode.addVerb( "all", "is_published='1'", "" );
50
51     aProducerNode.addSubNode( contentNode );
52   }
53
54   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
55     aProducerNode.clear();
56     try {
57       aProducerNode.addSubNode(
58             new EntityListProducerNode("newswire", model, "content",
59                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
60               new EntityListProducerNode("languages", model, "language",
61                             "", "code", 10, 0,
62                 new EntityListProducerNode("startspecial", model, "content",
63                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
64                   new EntityListProducerNode("features", model, "content",
65                           "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
66                     new EntityListProducerNode("breaking", model, "breakingNews",
67                               "", "webdb_create desc", 5, 0,
68                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
69                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
70                           new GeneratingProducerNode(
71                               "/producer/bolivia.indymedia.org/startpage.template",
72                               "${config.storageRoot}/${language.code}/index.shtml"
73                           )
74                         )
75                       )
76                     )
77                   )
78                 )
79               )
80             )
81       );
82     }
83     catch (Throwable t) {
84       logger.printError("BoliviaProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
85     }
86   }
87
88   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
89     aProducerNode.clear();
90
91     try {
92       aProducerNode.addSubNode(
93           new EntityListProducerNode("languages", model, "language",
94                   "", "code", 10, 0,
95             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
96               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
97                 new GeneratingProducerNode(
98                     "/producer/bolivia.indymedia.org/navigation.template",
99                     "${config.storageRoot}/${language.code}/navigation.inc"
100                 )
101               )
102             )
103           )
104       );
105     }
106     catch (Throwable t) {
107       logger.printError("BoliviaProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
108     }
109   }
110
111   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
112     aProducerNode.clear();
113
114     EntityBatchingProducerNode topicArchiveNode = null;
115     ProducerNode topicStartpageNode = null;
116
117     try {
118 // topic pages:
119       topicArchiveNode =
120         new EntityBatchingProducerNode( "articles", "batch", model, "content",
121               "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", 20, 10, 0,
122           new EntityListProducerNode("languages", model, "language",
123                   "", "code", 10, 0,
124             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
125               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
126                 new GeneratingProducerNode(
127                     "/producer/bolivia.indymedia.org/topic.template",
128                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
129                 )
130               )
131             )
132           ),
133           new EntityListProducerNode("languages", model, "language",
134                   "", "code", 10, 0,
135             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
136               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
137                 new GeneratingProducerNode(
138                     "/producer/bolivia.indymedia.org/topicnavigation.template",
139                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
140                 )
141               )
142             )
143           )
144         );
145       topicArchiveNode.addVerb("new", 3);
146       topicArchiveNode.addVerb("all", -1);
147
148       aProducerNode.addSubNode(
149           new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
150             new EntityListProducerNode("topicspecial", model, "content",
151                   "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,
152               topicArchiveNode
153             )
154           )
155       );
156
157       aProducerNode.addSubNode(
158         new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
159           new EntityListProducerNode("topicspecial", model, "content",
160                 "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,
161             new EntityListProducerNode("newswire", model, "content",
162                     "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 desc, webdb_create desc", 40, 0,
163               new EntityListProducerNode("features", model, "content",
164                       "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 desc, webdb_create desc", 10, 0,
165                   new EntityListProducerNode("languages", model, "language",
166                                 "", "code", 10, 0,
167                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
168                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
169                           new GeneratingProducerNode(
170                               "/producer/bolivia.indymedia.org/topicstartpage.template",
171                               "${config.storageRoot}/${language.code}/${topic.filename}/index.shtml"
172                           )
173                         )
174                       )
175
176                   )
177               )
178             )
179           )
180         )
181       );
182
183     }
184     catch (Throwable t) {
185       logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
186     }
187   }
188
189   protected void setupFactories(Map aFactoriesMap ) {
190     EntityBatchingProducerNode archiveNode = null;
191
192     try {
193       super.setupFactories(aFactoriesMap);
194
195 // newswire archive:
196       archiveNode =
197         new EntityBatchingProducerNode( "articles", "batch", model, "content",
198               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
199           new EntityListProducerNode("languages", model, "language",
200                   "", "code", 10, 0,
201             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
202               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
203                 new GeneratingProducerNode(
204                     "/producer/bolivia.indymedia.org/newswire.template",
205                     "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
206                 )
207               )
208             )
209           ),
210           new EntityListProducerNode("languages", model, "language",
211                   "", "code", 10, 0,
212             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
213               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
214                 new GeneratingProducerNode(
215                     "/producer/bolivia.indymedia.org/newswirenavigation.template",
216                     "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
217                 )
218               )
219             )
220           )
221         );
222       archiveNode.addVerb("new", 3);
223       archiveNode.addVerb("all", -1);
224
225       aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
226
227 // feature archive:
228       archiveNode =
229         new EntityBatchingProducerNode( "articles", "batch", model, "content",
230               "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
231           new EntityListProducerNode("languages", model, "language",
232                   "", "code", 10, 0,
233             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
234               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
235                 new GeneratingProducerNode(
236                     "/producer/bolivia.indymedia.org/feature.template",
237                     "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
238                 )
239               )
240             )
241           ),
242           new EntityListProducerNode("languages", model, "language",
243                   "", "code", 10, 0,
244             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
245               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
246                 new GeneratingProducerNode(
247                     "/producer/bolivia.indymedia.org/featurenavigation.template",
248                     "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
249                 )
250               )
251             )
252           )
253         );
254       archiveNode.addVerb("new", 3);
255       archiveNode.addVerb("all", -1);
256
257       aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
258
259     }
260     catch (Throwable t) {
261       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
262     }
263   }
264 }