merge of localization branch into HEAD. mh and zap
[mir.git] / source / mircoders / producer / reader / SupplementalProducerNodeBuilders.java
1 package mircoders.producer.reader;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mir.producer.reader.*;
6 import mir.util.*;
7 import mir.entity.adapter.*;
8 import mir.generator.*;
9 import mircoders.producer.*;
10
11 public class SupplementalProducerNodeBuilders {
12
13   public static void registerBuilders(ProducerNodeBuilderLibrary aBuilderLibrary, EntityAdapterModel aModel) {
14     aBuilderLibrary.registerBuilder("ModifyContent", ContentModifyingProducerNodeBuilder.class);
15     aBuilderLibrary.registerBuilder("MarkContent", ContentMartkingProducerNodeBuilder.class);
16   }
17
18   public static class ContentMartkingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder {
19     private final static String   MARKER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE;
20     private final static String[] MARKER_REQUIRED_ATTRIBUTES = { MARKER_KEY_ATTRIBUTE };
21     private final static String[] MARKER_OPTIONAL_ATTRIBUTES = {};
22     private final static String[] MARKER_SUBNODES = {};
23
24     private String key;
25
26     public ContentMartkingProducerNodeBuilder() {
27       super(MARKER_SUBNODES);
28     }
29
30     public void setAttributes(Map anAttributes) throws ProducerConfigExc {
31       ReaderTool.checkAttributes(anAttributes, MARKER_REQUIRED_ATTRIBUTES, MARKER_OPTIONAL_ATTRIBUTES);
32
33       key = (String) anAttributes.get(MARKER_KEY_ATTRIBUTE);
34     };
35
36     public ProducerNode constructNode() {
37       return new ContentMarkingProducerNode(key);
38     };
39   }
40
41
42   public static class ContentModifyingProducerNodeBuilder extends DefaultProducerNodeBuilders.AbstractProducerNodeBuilder {
43     private final static String   MODIFYER_KEY_ATTRIBUTE = DefaultProducerNodeBuilders.KEY_ATTRIBUTE;
44     private final static String   MODIFYER_FIELD_ATTRIBUTE = "field";
45     private final static String   MODIFYER_VALUE_ATTRIBUTE = "value";
46     private final static String[] MODIFYER_REQUIRED_ATTRIBUTES = { MODIFYER_KEY_ATTRIBUTE, MODIFYER_FIELD_ATTRIBUTE, MODIFYER_VALUE_ATTRIBUTE };
47     private final static String[] MODIFYER_OPTIONAL_ATTRIBUTES = {};
48     private final static String[] MODIFYER_SUBNODES = {};
49
50     private String key;
51     private String field;
52     private String value;
53
54     public ContentModifyingProducerNodeBuilder() {
55       super(MODIFYER_SUBNODES);
56     }
57
58     public void setAttributes(Map anAttributes) throws ProducerConfigExc {
59       ReaderTool.checkAttributes(anAttributes, MODIFYER_REQUIRED_ATTRIBUTES, MODIFYER_OPTIONAL_ATTRIBUTES);
60
61       key = (String) anAttributes.get(MODIFYER_KEY_ATTRIBUTE);
62       field = (String) anAttributes.get(MODIFYER_FIELD_ATTRIBUTE);
63       value = (String) anAttributes.get(MODIFYER_VALUE_ATTRIBUTE);
64     };
65
66     public ProducerNode constructNode() {
67       return new ContentModifyingProducerNode(key, field, value);
68     };
69   }
70
71
72 /*
73   TODO:
74         [ ] Media Producing
75 */
76
77 }