Author: scabanovich
Date: 2010-08-30 08:33:27 -0400 (Mon, 30 Aug 2010)
New Revision: 24544
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationDefinition.java
Log:
https://jira.jboss.org/browse/JBIDE-6935
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java 2010-08-30
08:11:13 UTC (rev 24543)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java 2010-08-30
12:33:27 UTC (rev 24544)
@@ -170,7 +170,7 @@
Set<IQualifier> qs = new HashSet<IQualifier>();
for(IAnnotationDeclaration a: definition.getAnnotations()) {
int k = getCDIProject().getNature().getDefinitions().getAnnotationKind(a.getType());
- if(k == AnnotationDefinition.QUALIFIER) {
+ if((k & AnnotationDefinition.QUALIFIER) > 0) {
IQualifierDeclaration q = (IQualifierDeclaration)a;
result.add(q);
if(q.getQualifier() != null) qs.add(q.getQualifier());
@@ -250,7 +250,7 @@
Set<IScopeDeclaration> result = new HashSet<IScopeDeclaration>();
for (IAnnotationDeclaration d: ds) {
int k = n.getDefinitions().getAnnotationKind(d.getType());
- if(k == AnnotationDefinition.SCOPE) {
+ if((k & AnnotationDefinition.SCOPE) > 0) {
result.add((IScopeDeclaration)d);
}
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2010-08-30
08:11:13 UTC (rev 24543)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2010-08-30
12:33:27 UTC (rev 24544)
@@ -585,7 +585,7 @@
Set<IType> result = new HashSet<IType>();
List<AnnotationDefinition> ds = n.getDefinitions().getAllAnnotations();
for (AnnotationDefinition d: ds) {
- if(d.getKind() == AnnotationDefinition.QUALIFIER) {
+ if((d.getKind() & AnnotationDefinition.QUALIFIER) > 0) {
result.add(d.getType());
}
}
@@ -683,7 +683,7 @@
}
int k = n.getDefinitions().getAnnotationKind(annotationType);
- return k == AnnotationDefinition.QUALIFIER;
+ return (k & AnnotationDefinition.QUALIFIER) > 0;
}
public boolean isScope(IType annotationType) {
@@ -695,7 +695,7 @@
}
int k = n.getDefinitions().getAnnotationKind(annotationType);
- return k == AnnotationDefinition.SCOPE;
+ return (k & AnnotationDefinition.SCOPE) > 0;
}
public boolean isStereotype(IType annotationType) {
@@ -707,7 +707,7 @@
}
int k = n.getDefinitions().getAnnotationKind(annotationType);
- return k == AnnotationDefinition.STEREOTYPE;
+ return (k & AnnotationDefinition.STEREOTYPE) > 0;
}
public Set<IBean> resolve(Set<IBean> beans) {
@@ -961,28 +961,31 @@
scopesByPath.clear();
List<AnnotationDefinition> ds = n.getDefinitions().getAllAnnotations();
for (AnnotationDefinition d: ds) {
- if(d.getKind() == AnnotationDefinition.STEREOTYPE) {
+ if((d.getKind() & AnnotationDefinition.STEREOTYPE) > 0) {
StereotypeElement s = new StereotypeElement();
initAnnotationElement(s, d);
stereotypes.put(d.getQualifiedName(), s);
if(d.getResource() != null && d.getResource().getFullPath() != null) {
stereotypesByPath.put(d.getResource().getFullPath(), s);
}
- } else if(d.getKind() == AnnotationDefinition.INTERCEPTOR_BINDING) {
+ }
+ if((d.getKind() & AnnotationDefinition.INTERCEPTOR_BINDING) > 0) {
InterceptorBindingElement s = new InterceptorBindingElement();
initAnnotationElement(s, d);
interceptorBindings.put(d.getQualifiedName(), s);
if(d.getResource() != null && d.getResource().getFullPath() != null) {
interceptorBindingsByPath.put(d.getResource().getFullPath(), s);
}
- } else if(d.getKind() == AnnotationDefinition.QUALIFIER) {
+ }
+ if((d.getKind() & AnnotationDefinition.QUALIFIER) > 0) {
QualifierElement s = new QualifierElement();
initAnnotationElement(s, d);
qualifiers.put(d.getQualifiedName(), s);
if(d.getResource() != null && d.getResource().getFullPath() != null) {
qualifiersByPath.put(d.getResource().getFullPath(), s);
}
- } else if(d.getKind() == AnnotationDefinition.SCOPE) {
+ }
+ if((d.getKind() & AnnotationDefinition.SCOPE) > 0) {
ScopeElement s = new ScopeElement();
initAnnotationElement(s, d);
scopes.put(d.getQualifiedName(), s);
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java 2010-08-30
08:11:13 UTC (rev 24543)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java 2010-08-30
12:33:27 UTC (rev 24544)
@@ -68,17 +68,30 @@
AnnotationDeclaration a = new AnnotationDeclaration();
a.setProject(context.getProject());
a.setDeclaration(ts[i], contextType);
+ AnnotationDeclaration b = null;
int kind = context.getAnnotationKind(a.getType());
- if(kind == AnnotationDefinition.STEREOTYPE) {
- a = new StereotypeDeclaration(a);
- } else if(kind == AnnotationDefinition.INTERCEPTOR_BINDING) {
- a = new InterceptorBindingDeclaration(a);
- } else if(kind == AnnotationDefinition.QUALIFIER) {
- a = new QualifierDeclaration(a);
- } else if(kind == AnnotationDefinition.SCOPE) {
- a = new ScopeDeclaration(a);
+ if((kind & AnnotationDefinition.STEREOTYPE) > 0) {
+ b = new StereotypeDeclaration(a);
+ annotations.add(b);
}
- annotations.add(a);
+ if((kind & AnnotationDefinition.INTERCEPTOR_BINDING) > 0) {
+ b = new InterceptorBindingDeclaration(a);
+ annotations.add(b);
+ }
+ if((kind & AnnotationDefinition.QUALIFIER) > 0) {
+ b = new QualifierDeclaration(a);
+ annotations.add(b);
+ }
+ if((kind & AnnotationDefinition.SCOPE) > 0) {
+ b = new ScopeDeclaration(a);
+ annotations.add(b);
+ }
+ if(b == null) {
+ annotations.add(a);
+ } else {
+ a = b;
+ }
+
if(a.getTypeName() != null) {
annotationsByType.put(a.getTypeName(), a);
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationDefinition.java 2010-08-30
08:11:13 UTC (rev 24543)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AnnotationDefinition.java 2010-08-30
12:33:27 UTC (rev 24544)
@@ -31,10 +31,10 @@
public static final int NON_RELEVANT = 0;
public static final int BASIC = 1; //has Inherited, Target, Retention
public static final int CDI = 2; //has Model, Named, Typed, *Scoped, New
- public static final int QUALIFIER = 3; //has Qualifier
- public static final int STEREOTYPE = 4; //has Stereotype
- public static final int INTERCEPTOR_BINDING = 5; //has InterceptorBinding
- public static final int SCOPE = 6; //has Scope or NormalScope
+ public static final int QUALIFIER = 4; //has Qualifier
+ public static final int STEREOTYPE = 8; //has Stereotype
+ public static final int INTERCEPTOR_BINDING = 16; //has InterceptorBinding
+ public static final int SCOPE = 32; //has Scope or NormalScope
//TODO add other definition kinds of interest
protected int kind = NON_RELEVANT;
@@ -75,19 +75,25 @@
if(ds.containsKey(CDIConstants.SCOPE_ANNOTATION_TYPE_NAME)
|| ds.containsKey(CDIConstants.NORMAL_SCOPE_ANNOTATION_TYPE_NAME)) {
kind = SCOPE;
- } else if(ds.containsKey(CDIConstants.STEREOTYPE_ANNOTATION_TYPE_NAME)) {
- kind = STEREOTYPE;
- } else if(ds.containsKey(CDIConstants.QUALIFIER_ANNOTATION_TYPE_NAME)) {
- kind = QUALIFIER;
- } else if(ds.containsKey(CDIConstants.INTERCEPTOR_BINDING_ANNOTATION_TYPE_NAME)) {
- kind = INTERCEPTOR_BINDING;
- } else if(AnnotationHelper.BASIC_ANNOTATION_TYPES.contains(qualifiedName)) {
- kind = AnnotationDefinition.BASIC;
- } else if(AnnotationHelper.CDI_ANNOTATION_TYPES.contains(qualifiedName)) {
- kind = AnnotationDefinition.CDI;
}
+ if(ds.containsKey(CDIConstants.STEREOTYPE_ANNOTATION_TYPE_NAME)) {
+ kind |= STEREOTYPE;
+ }
+ if(ds.containsKey(CDIConstants.QUALIFIER_ANNOTATION_TYPE_NAME)) {
+ kind |= QUALIFIER;
+ }
+ if(ds.containsKey(CDIConstants.INTERCEPTOR_BINDING_ANNOTATION_TYPE_NAME)) {
+ kind |= INTERCEPTOR_BINDING;
+ }
+ if(kind == NON_RELEVANT) {
+ if(AnnotationHelper.BASIC_ANNOTATION_TYPES.contains(qualifiedName)) {
+ kind = AnnotationDefinition.BASIC;
+ } else if(AnnotationHelper.CDI_ANNOTATION_TYPES.contains(qualifiedName)) {
+ kind = AnnotationDefinition.CDI;
+ }
+ }
- if(kind == QUALIFIER || kind == INTERCEPTOR_BINDING) {
+ if((kind & QUALIFIER) > 0 || (kind & INTERCEPTOR_BINDING) > 0) {
initMemberDefinitions(contextType, context);
}
}