summaryrefslogtreecommitdiff
path: root/qpid/java/broker-codegen/src/main
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
commitdb2daee6568f8292a23d4bfc82c8a40be9979ffd (patch)
treeff457b259828dadc47259572ab6db4996c8a4ff4 /qpid/java/broker-codegen/src/main
parent48b5fc54f8b6bbf156f1a6403daecdf2b4f921e8 (diff)
downloadqpid-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.java67
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();