summaryrefslogtreecommitdiff
path: root/java/broker-codegen
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-08-19 11:58:06 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-08-19 11:58:06 +0000
commit39984fbff3b523d0b24363164cfd70ea325d33e2 (patch)
tree09760c70e72a4b80dbeaba4d4b103d3c3656b45e /java/broker-codegen
parent38620947f907f6e8ae045fa3064deb70f913062a (diff)
downloadqpid-python-39984fbff3b523d0b24363164cfd70ea325d33e2.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/qpid@1618846 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-codegen')
-rw-r--r--java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java67
1 files changed, 47 insertions, 20 deletions
diff --git a/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java b/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java
index 3c6cb4270e..9e63e96fb7 100644
--- a/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java
+++ b/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();