At last the EntityBatchingProducerNode is working. This will replace the old
[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 outputFileNameExpression;
12   private int batchSize;
13
14   public ContentProducerFactory(
15     String aGeneratorIdentifier,
16     String aResourceBundle,
17     String anOutputFileNameExpression,
18     int aBatchSize) {
19
20     generatorIdentifier = aGeneratorIdentifier;
21     resourceBundle = aResourceBundle;
22     outputFileNameExpression = anOutputFileNameExpression;
23     batchSize=aBatchSize;
24   }
25
26   public mir.producer.Producer makeProducer(String aVerb) throws ProducerFailure {
27     try {
28       QueryBuilder queryBuilder = new QueryBuilder();
29
30       queryBuilder.appendAndCondition("is_published='1'");
31
32       if (!aVerb.equals("all")) {
33         queryBuilder.appendAndCondition("is_produced='0'");
34       }
35
36       return new ContentProducer(
37         new EntityBrowser(
38           DatabaseContent.getInstance(),
39           queryBuilder.getWhereClause(),
40           queryBuilder.getOrderByClause(),
41           batchSize),
42         generatorIdentifier,
43         resourceBundle,
44         outputFileNameExpression
45       );
46     } catch (Exception e) {
47       throw new ProducerFailure("Creating Producer failed",e);
48     }
49   };
50
51   public Iterator verbs() {
52     Vector verbList = new Vector();
53
54     verbList.add("new");
55     verbList.add("all");
56
57     return verbList.iterator();
58   };
59 }
60