some new files / some changes here and there for localized producers
[mir.git] / source / mircoders / producer / ContentProducerFactory.java
1 package mircoders.producer;
2
3 import java.util.*;
4 import mir.entity.*;
5 import mir.producer.*;
6 import mircoders.storage.*;
7
8 public class ContentProducerFactory implements ProducerFactory {
9   private String generatorIdentifier;
10   private String resourceBundle;
11   private String outputFilePrefix;
12   private String outputFilePostfix;
13   private int batchSize;
14
15 // ML: extra selection needed for article types
16   public ContentProducerFactory(
17     String aGeneratorIdentifier,
18     String aResourceBundle,
19     String anOutputFilePrefix,
20     String anOutputFilePostfix,
21     int aBatchSize) {
22
23     generatorIdentifier=aGeneratorIdentifier;
24     resourceBundle=aResourceBundle;
25     outputFilePrefix=anOutputFilePrefix;
26     outputFilePostfix=anOutputFilePostfix;
27     batchSize=aBatchSize;
28   }
29
30   public mir.producer.Producer makeProducer(String aVerb) throws ProducerException {
31     try {
32       QueryBuilder queryBuilder = new QueryBuilder();
33
34       queryBuilder.appendAndCondition("is_published='1'");
35
36       if (!aVerb.equals("all")) {
37         queryBuilder.appendAndCondition("is_produced='0'");
38       }
39
40       return new ContentProducer(
41         new EntityBrowser(
42           DatabaseContent.getInstance(),
43           queryBuilder.getWhereClause(),
44           queryBuilder.getOrderByClause(),
45           batchSize),
46         generatorIdentifier,
47         resourceBundle,
48         outputFilePrefix,
49         outputFilePostfix
50       );
51     } catch (Exception e) {
52       throw new ProducerException(e);
53     }
54   };
55
56   public Iterator verbs() {
57     Vector verbList = new Vector();
58
59     verbList.add("new");
60     verbList.add("all");
61
62     return verbList.iterator();
63   };
64 }
65