1 package org.codehaus.modello.plugins.xml.metadata;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import javax.inject.Named;
26 import javax.inject.Singleton;
27
28 import java.util.Map;
29
30 import org.codehaus.modello.metadata.AbstractMetadataPlugin;
31 import org.codehaus.modello.metadata.AssociationMetadata;
32 import org.codehaus.modello.metadata.ClassMetadata;
33 import org.codehaus.modello.metadata.FieldMetadata;
34 import org.codehaus.modello.metadata.InterfaceMetadata;
35 import org.codehaus.modello.metadata.MetadataPlugin;
36 import org.codehaus.modello.metadata.ModelMetadata;
37 import org.codehaus.modello.model.Model;
38 import org.codehaus.modello.model.ModelAssociation;
39 import org.codehaus.modello.model.ModelClass;
40 import org.codehaus.modello.model.ModelField;
41 import org.codehaus.modello.model.ModelInterface;
42
43
44
45
46
47 @Named("xml")
48 @Singleton
49 public class XmlMetadataPlugin extends AbstractMetadataPlugin implements MetadataPlugin {
50 public static final String XML_ATTRIBUTE = "xml.attribute";
51
52 public static final String XML_CONTENT = "xml.content";
53
54 public static final String XML_FORMAT = "xml.format";
55
56 public static final String XML_ITEMS_STYLE = "xml.itemsStyle";
57
58 public static final String XML_MAP_STYLE = "xml.mapStyle";
59
60 public static final String XML_NAMESPACE = "xml.namespace";
61
62 public static final String XML_REFERENCE = "xml.reference";
63
64 public static final String XML_SCHEMA_LOCATION = "xml.schemaLocation";
65
66 public static final String XML_TAG_NAME = "xml.tagName";
67
68 public static final String XML_STANDALONE_READ = "xml.standaloneRead";
69
70 public static final String XML_TRIM = "xml.trim";
71
72 public static final String XML_TRANSIENT = "xml.transient";
73
74 public static final String XML_INSERT_PARENT_FIELDS_UP_TO = "xml.insertParentFieldsUpTo";
75
76
77
78
79
80 public ModelMetadata getModelMetadata(Model model, Map<String, String> data) {
81 XmlModelMetadata metadata = new XmlModelMetadata();
82
83 metadata.setNamespace(getString(data, XML_NAMESPACE));
84
85 metadata.setSchemaLocation(getString(data, XML_SCHEMA_LOCATION));
86
87 return metadata;
88 }
89
90 public ClassMetadata getClassMetadata(ModelClass clazz, Map<String, String> data) {
91 XmlClassMetadata metadata = new XmlClassMetadata();
92
93 metadata.setTagName(getString(data, XML_TAG_NAME));
94
95 metadata.setStandaloneRead(getBoolean(data, XML_STANDALONE_READ, false));
96
97 return metadata;
98 }
99
100 public InterfaceMetadata getInterfaceMetadata(ModelInterface iface, Map<String, String> data) {
101 return new XmlInterfaceMetadata();
102 }
103
104 public FieldMetadata getFieldMetadata(ModelField field, Map<String, String> data) {
105 XmlFieldMetadata metadata = new XmlFieldMetadata();
106
107 metadata.setAttribute(getBoolean(data, XML_ATTRIBUTE, false));
108
109 metadata.setContent(getBoolean(data, XML_CONTENT, false));
110
111 metadata.setTrim(getBoolean(data, XML_TRIM, true));
112
113 metadata.setTagName(getString(data, XML_TAG_NAME));
114
115 metadata.setFormat(getString(data, XML_FORMAT));
116
117 metadata.setTransient(getBoolean(data, XML_TRANSIENT, false));
118
119 metadata.setInsertParentFieldsUpTo(getString(data, XML_INSERT_PARENT_FIELDS_UP_TO));
120
121 return metadata;
122 }
123
124 public AssociationMetadata getAssociationMetadata(ModelAssociation association, Map<String, String> data) {
125 XmlAssociationMetadata metadata = new XmlAssociationMetadata();
126
127 metadata.setTagName(getString(data, XML_TAG_NAME));
128
129 metadata.setItemsStyle(getString(data, XML_ITEMS_STYLE));
130
131 metadata.setMapStyle(getString(data, XML_MAP_STYLE));
132
133 metadata.setReference(getBoolean(data, XML_REFERENCE, false));
134
135 return metadata;
136 }
137 }