30
30
31
31
import java .util .Arrays ;
32
32
import java .util .Collection ;
33
+ import java .util .Collections ;
34
+ import java .util .HashSet ;
35
+ import java .util .Set ;
33
36
34
37
import javax .xml .namespace .QName ;
35
38
38
41
import org .jvnet .annox .model .XAnnotation ;
39
42
import org .jvnet .annox .parser .XAnnotationParser ;
40
43
import org .jvnet .jaxb2_commons .plugin .AbstractParameterizablePlugin ;
44
+ import org .jvnet .jaxb2_commons .plugin .AnnotationTarget ;
45
+ import org .jvnet .jaxb2_commons .plugin .removeannotation .RemoveAnnotationPlugin ;
41
46
import org .jvnet .jaxb2_commons .util .CustomizationUtils ;
42
47
import org .w3c .dom .Element ;
43
48
import org .w3c .dom .Node ;
@@ -87,6 +92,23 @@ public class AnnotatePlugin extends AbstractParameterizablePlugin {
87
92
Constants .NAMESPACE_URI , "annotateEnumFromValueMethod" );
88
93
public static final QName ANNOTATE_QNAME = new QName (
89
94
Constants .NAMESPACE_URI , "annotate" );
95
+
96
+ public static final Set <QName > CUSTOMIZATION_ELEMENT_QNAMES = Collections .unmodifiableSet (
97
+ new HashSet <QName >(Arrays .asList (
98
+ ANNOTATE_QNAME ,
99
+ ANNOTATE_PACKAGE_QNAME ,
100
+ ANNOTATE_CLASS_QNAME ,
101
+ ANNOTATE_ELEMENT_QNAME ,
102
+ ANNOTATE_PROPERTY_QNAME ,
103
+ ANNOTATE_PROPERTY_FIELD_QNAME ,
104
+ ANNOTATE_PROPERTY_GETTER_QNAME ,
105
+ ANNOTATE_PROPERTY_SETTER_QNAME ,
106
+ ANNOTATE_PROPERTY_SETTER_PARAMETER_QNAME ,
107
+ ANNOTATE_ENUM_QNAME ,
108
+ ANNOTATE_ENUM_CONSTANT_QNAME ,
109
+ ANNOTATE_ENUM_VALUE_METHOD_QNAME ,
110
+ ANNOTATE_ENUM_FROM_VALUE_METHOD_QNAME )));
111
+
90
112
91
113
@ Override
92
114
public String getOptionName () {
@@ -202,7 +224,7 @@ protected void processFieldOutline(ClassOutline classOutline,
202
224
ErrorHandler errorHandler ) {
203
225
final CCustomizations customizations = CustomizationUtils
204
226
.getCustomizations (fieldOutline );
205
- annotate (fieldOutline .parent ().ref .owner (), fieldOutline ,
227
+ annotateFieldOutline (fieldOutline .parent ().ref .owner (), fieldOutline ,
206
228
customizations , errorHandler );
207
229
}
208
230
@@ -226,7 +248,7 @@ protected void annotateElementOutline(final JCodeModel codeModel,
226
248
final Element element = customization .element ;
227
249
final QName name = new QName (element .getNamespaceURI (),
228
250
element .getLocalName ());
229
- if (Constants . NAMESPACE_URI . equals (name . getNamespaceURI () )) {
251
+ if (isCustomizationElementName (name )) {
230
252
customization .markAsAcknowledged ();
231
253
final AnnotationTarget annotationTarget = AnnotationTarget
232
254
.getAnnotationTarget (element , AnnotationTarget .ELEMENT );
@@ -251,7 +273,7 @@ protected void annotateEnumOutline(final JCodeModel codeModel,
251
273
final Element element = customization .element ;
252
274
final QName name = new QName (element .getNamespaceURI (),
253
275
element .getLocalName ());
254
- if (Constants . NAMESPACE_URI . equals (name . getNamespaceURI () )) {
276
+ if (isCustomizationElementName (name )) {
255
277
customization .markAsAcknowledged ();
256
278
final AnnotationTarget annotationTarget = AnnotationTarget
257
279
.getAnnotationTarget (element , AnnotationTarget .ENUM );
@@ -276,7 +298,7 @@ protected void annotateEnumConstantOutline(final JCodeModel codeModel,
276
298
final Element element = customization .element ;
277
299
final QName name = new QName (element .getNamespaceURI (),
278
300
element .getLocalName ());
279
- if (Constants . NAMESPACE_URI . equals (name . getNamespaceURI () )) {
301
+ if (isCustomizationElementName (name )) {
280
302
customization .markAsAcknowledged ();
281
303
final AnnotationTarget annotationTarget = AnnotationTarget
282
304
.getAnnotationTarget (element ,
@@ -301,7 +323,7 @@ protected void annotateClassOutline(final JCodeModel codeModel,
301
323
final Element element = customization .element ;
302
324
final QName name = new QName (element .getNamespaceURI (),
303
325
element .getLocalName ());
304
- if (Constants . NAMESPACE_URI . equals (name . getNamespaceURI () )) {
326
+ if (isCustomizationElementName (name )) {
305
327
customization .markAsAcknowledged ();
306
328
final AnnotationTarget annotationTarget = AnnotationTarget
307
329
.getAnnotationTarget (element , AnnotationTarget .CLASS );
@@ -317,14 +339,14 @@ protected void annotateClassOutline(final JCodeModel codeModel,
317
339
}
318
340
}
319
341
320
- protected void annotate (final JCodeModel codeModel ,
342
+ protected void annotateFieldOutline (final JCodeModel codeModel ,
321
343
final FieldOutline fieldOutline ,
322
344
final CCustomizations customizations , ErrorHandler errorHandler ) {
323
345
for (final CPluginCustomization customization : customizations ) {
324
346
final Element element = customization .element ;
325
347
final QName name = new QName (element .getNamespaceURI (),
326
348
element .getLocalName ());
327
- if (Constants . NAMESPACE_URI . equals (name . getNamespaceURI () )) {
349
+ if (isCustomizationElementName (name )) {
328
350
customization .markAsAcknowledged ();
329
351
330
352
final AnnotationTarget annotationTarget = AnnotationTarget
@@ -390,23 +412,16 @@ private void annotate(final JCodeModel codeModel,
390
412
}
391
413
}
392
414
}
415
+
416
+ private boolean isCustomizationElementName (final QName name ) {
417
+ return name != null &&
418
+ Constants .NAMESPACE_URI .equals (name .getNamespaceURI ()) &&
419
+ !RemoveAnnotationPlugin .CUSTOMIZATION_ELEMENT_QNAMES .contains (name );
420
+ }
393
421
394
422
@ Override
395
423
public Collection <QName > getCustomizationElementNames () {
396
- return Arrays .asList (
397
- ANNOTATE_QNAME ,
398
- ANNOTATE_PACKAGE_QNAME ,
399
- ANNOTATE_CLASS_QNAME ,
400
- ANNOTATE_ELEMENT_QNAME ,
401
- ANNOTATE_PROPERTY_QNAME ,
402
- ANNOTATE_PROPERTY_FIELD_QNAME ,
403
- ANNOTATE_PROPERTY_GETTER_QNAME ,
404
- ANNOTATE_PROPERTY_SETTER_QNAME ,
405
- ANNOTATE_PROPERTY_SETTER_PARAMETER_QNAME ,
406
- ANNOTATE_ENUM_QNAME ,
407
- ANNOTATE_ENUM_CONSTANT_QNAME ,
408
- ANNOTATE_ENUM_VALUE_METHOD_QNAME ,
409
- ANNOTATE_ENUM_FROM_VALUE_METHOD_QNAME );
424
+ return CUSTOMIZATION_ELEMENT_QNAMES ;
410
425
}
411
426
412
427
}
0 commit comments