1 package org.codehaus.modello.plugin.java.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 @Named("java")
47 @Singleton
48 public class JavaMetadataPlugin extends AbstractMetadataPlugin implements MetadataPlugin {
49 public static final String JAVA_ABSTRACT = "java.abstract";
50
51 public static final String JAVA_ADDER = "java.adder";
52
53 public static final String JAVA_BIDI = "java.bidi";
54
55 public static final String JAVA_ENABLED = "java.enabled";
56
57 public static final String JAVA_GETTER = "java.getter";
58
59 public static final String JAVA_INIT = "java.init";
60
61 public static final String JAVA_SETTER = "java.setter";
62
63 public static final String JAVA_USE_INTERFACE = "java.useInterface";
64
65 public static final String JAVA_CLONE = "java.clone";
66
67 public static final String JAVA_CLONE_HOOK = "java.clone.hook";
68
69
70
71
72 public static final String JAVA_GENERATE_TOSTRING = "java.toString";
73
74 public static final String JAVA_SUPPRESS_ALL_WARNINGS = "java.suppressAllWarnings";
75
76
77
78
79 public static final String JAVA_GENERATE_BUILDER = "java.builder";
80
81
82
83
84 public static final String JAVA_GENERATE_STATIC_CREATORS = "java.staticCreator";
85
86
87
88
89
90 public ModelMetadata getModelMetadata(Model model, Map<String, String> data) {
91 JavaModelMetadata metadata = new JavaModelMetadata();
92
93 metadata.setSuppressAllWarnings(getBoolean(data, JAVA_SUPPRESS_ALL_WARNINGS, true));
94
95 return metadata;
96 }
97
98 public ClassMetadata getClassMetadata(ModelClass clazz, Map<String, String> data) {
99 JavaClassMetadata metadata = new JavaClassMetadata();
100
101 metadata.setEnabled(getBoolean(data, JAVA_ENABLED, true));
102
103 metadata.setAbstract(getBoolean(data, JAVA_ABSTRACT, false));
104
105 metadata.setCloneMode(getString(data, JAVA_CLONE));
106
107 metadata.setCloneHook(getString(data, JAVA_CLONE_HOOK));
108
109 metadata.setGenerateToString(getBoolean(data, JAVA_GENERATE_TOSTRING, false));
110
111 metadata.setGenerateBuilder(getBoolean(data, JAVA_GENERATE_BUILDER, false));
112
113 metadata.setGenerateStaticCreators(getBoolean(data, JAVA_GENERATE_STATIC_CREATORS, false));
114
115 return metadata;
116 }
117
118 public InterfaceMetadata getInterfaceMetadata(ModelInterface iface, Map<String, String> data) {
119 return new JavaInterfaceMetadata();
120 }
121
122 public FieldMetadata getFieldMetadata(ModelField field, Map<String, String> data) {
123 JavaFieldMetadata metadata = new JavaFieldMetadata();
124
125 metadata.setGetter(getBoolean(data, JAVA_GETTER, true));
126
127 String fieldType = field.getType();
128 metadata.setBooleanGetter((fieldType != null) && fieldType.endsWith("oolean"));
129
130 metadata.setSetter(getBoolean(data, JAVA_SETTER, true));
131
132 return metadata;
133 }
134
135 public AssociationMetadata getAssociationMetadata(ModelAssociation association, Map<String, String> data) {
136 JavaAssociationMetadata metadata = new JavaAssociationMetadata();
137
138 metadata.setAdder(getBoolean(data, JAVA_ADDER, true));
139
140 metadata.setBidi(getBoolean(data, JAVA_BIDI, true));
141
142 metadata.setInterfaceName(getString(data, JAVA_USE_INTERFACE));
143
144 metadata.setInitializationMode(getString(data, JAVA_INIT));
145
146 metadata.setCloneMode(getString(data, JAVA_CLONE));
147
148 return metadata;
149 }
150 }