diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-08-19 11:58:06 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-08-19 11:58:06 +0000 |
| commit | db2daee6568f8292a23d4bfc82c8a40be9979ffd (patch) | |
| tree | ff457b259828dadc47259572ab6db4996c8a4ff4 /qpid/java/broker-codegen/src/main | |
| parent | 48b5fc54f8b6bbf156f1a6403daecdf2b4f921e8 (diff) | |
| download | qpid-python-db2daee6568f8292a23d4bfc82c8a40be9979ffd.tar.gz | |
QPID-6018 : [Java Broker] Add an attribute to the ManagedObject annotation to signify that the given object should not be registered in the meta-data registry
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1618846 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-codegen/src/main')
| -rw-r--r-- | qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java b/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java index 3c6cb4270e..9e63e96fb7 100644 --- a/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java +++ b/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java @@ -87,30 +87,33 @@ public class ConfiguredObjectRegistrationGenerator extends AbstractProcessor PackageElement packageElement = elementUtils.getPackageOf(e); String packageName = packageElement.getQualifiedName().toString(); String className = e.getSimpleName().toString(); - for(AnnotationMirror a : e.getAnnotationMirrors()) + AnnotationMirror annotation = getAnnotation(e, annotationElement); + + AnnotationValue registerValue = getAnnotationValue(annotation, "register"); + + if(registerValue == null || (Boolean) registerValue.getValue() ) { - if(a.getAnnotationType().asElement().equals(annotationElement)) + AnnotationValue typeValue = getAnnotationValue(annotation, "type"); + + if (typeValue != null) { - for(Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : a.getElementValues().entrySet()) - { - if(entry.getKey().getSimpleName().toString().equals("type")) - { - _typeMap.put(packageName + "." + className, (String) entry.getValue().getValue()); - processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "looking for " + packageName + "." + className); - _categoryMap.put(packageName + "." + className, getCategory((TypeElement)e)); - break; - } - } - break; + _typeMap.put(packageName + "." + className, (String) typeValue.getValue()); + processingEnv.getMessager() + .printMessage(Diagnostic.Kind.NOTE, + "looking for " + packageName + "." + className); + _categoryMap.put(packageName + "." + className, getCategory((TypeElement) e)); + } + + + Set<String> classNames = _managedObjectClasses.get(packageName); + if (classNames == null) + { + classNames = new HashSet<>(); + _managedObjectClasses.put(packageName, classNames); + } + classNames.add(className); } - Set<String> classNames = _managedObjectClasses.get(packageName); - if (classNames == null) - { - classNames = new HashSet<>(); - _managedObjectClasses.put(packageName, classNames); - } - classNames.add(className); } } for (Map.Entry<String, Set<String>> entry : _managedObjectClasses.entrySet()) @@ -129,6 +132,30 @@ public class ConfiguredObjectRegistrationGenerator extends AbstractProcessor return false; } + private AnnotationValue getAnnotationValue(final AnnotationMirror annotation, final String attribute) + { + for(Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : annotation.getElementValues().entrySet()) + { + if(entry.getKey().getSimpleName().toString().equals(attribute)) + { + return entry.getValue(); + } + } + return null; + } + + private AnnotationMirror getAnnotation(final Element e, final TypeElement annotationElement) + { + for(AnnotationMirror a : e.getAnnotationMirrors()) + { + if (a.getAnnotationType().asElement().equals(annotationElement)) + { + return a; + } + } + return null; + } + private String getCategory(final TypeElement e) { Elements elementUtils = processingEnv.getElementUtils(); |
