[jbosstools-commits] JBoss Tools SVN: r23344 - in trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi: internal/core/impl and 2 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Fri Jul 9 08:51:31 EDT 2010
Author: scabanovich
Date: 2010-07-09 08:51:30 -0400 (Fri, 09 Jul 2010)
New Revision: 23344
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMethod.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InterceptorBindingElement.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/StereotypeElement.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
https://jira.jboss.org/browse/JBIDE-6550
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -260,7 +260,9 @@
if(annotated instanceof IStereotyped) {
Set<IStereotypeDeclaration> stereoTypeDeclarations = ((IStereotyped)annotated).getStereotypeDeclarations();
for (IStereotypeDeclaration stereotypeDeclaration : stereoTypeDeclarations) {
- getAnnotationDeclaration(stereotypeDeclaration.getStereotype(), annotation);
+ if(getAnnotationDeclaration(stereotypeDeclaration.getStereotype(), annotation) != null) {
+ return stereotypeDeclaration;
+ }
}
}
return null;
@@ -777,6 +779,17 @@
return cdiNature;
}
+ public static Set<IInterceptorBinding> getAllInterceptorBindings(IInterceptorBinded binded) {
+ Set<IInterceptorBindingDeclaration> ds = collectInheritedInterceptorBindingDeclaratios(binded, new HashSet<IInterceptorBindingDeclaration>());
+ Set<IInterceptorBinding> result = new HashSet<IInterceptorBinding>();
+ for (IInterceptorBindingDeclaration d: ds) {
+ IInterceptorBinding b = d.getInterceptorBinding();
+ if(b != null) result.add(b);
+ }
+ return result;
+ }
+
+
/**
* Collect all the interceptor binding declarations from the bean class or method including all the inherited bindings.
* @param binded bean class or method
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMethod.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMethod.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMethod.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -17,6 +17,7 @@
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.IMethod;
import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBeanMethod;
import org.jboss.tools.cdi.core.IInterceptorBinding;
import org.jboss.tools.cdi.core.IInterceptorBindingDeclaration;
@@ -112,6 +113,6 @@
* @see org.jboss.tools.cdi.core.IInterceptorBinded#getInterceptorBindings()
*/
public Set<IInterceptorBinding> getInterceptorBindings() {
- return ClassBean.getInterceptorBindings(definition);
+ return CDIUtil.getAllInterceptorBindings(this);
}
}
\ No newline at end of file
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -25,6 +25,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.tools.cdi.core.CDIConstants;
import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IAnnotationDeclaration;
import org.jboss.tools.cdi.core.IBeanMethod;
import org.jboss.tools.cdi.core.IClassBean;
@@ -39,7 +40,6 @@
import org.jboss.tools.cdi.core.IScopeDeclaration;
import org.jboss.tools.cdi.core.IStereotype;
import org.jboss.tools.cdi.core.IStereotypeDeclaration;
-import org.jboss.tools.cdi.core.IStereotyped;
import org.jboss.tools.cdi.core.ITypeDeclaration;
import org.jboss.tools.cdi.internal.core.impl.definition.AbstractMemberDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.FieldDefinition;
@@ -195,22 +195,12 @@
return result;
}
- public static Set<IInterceptorBinding> getInterceptorBindings(AbstractMemberDefinition definition) {
- // TODO collect bindings from stereotypes. See https://jira.jboss.org/browse/JBIDE-6550
- Set<IInterceptorBinding> result = new HashSet<IInterceptorBinding>();
- Set<IInterceptorBindingDeclaration> declarations = getInterceptorBindingDeclarations(definition);
- for (IInterceptorBindingDeclaration declaration: declarations) {
- result.add(declaration.getInterceptorBinding());
- }
- return result;
- }
-
/*
* (non-Javadoc)
* @see org.jboss.tools.cdi.core.IClassBean#getInterceptorBindings()
*/
public Set<IInterceptorBinding> getInterceptorBindings() {
- return getInterceptorBindings(definition);
+ return CDIUtil.getAllInterceptorBindings(this);
}
public Set<IBeanMethod> getObserverMethods() {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InterceptorBindingElement.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InterceptorBindingElement.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InterceptorBindingElement.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -12,6 +12,7 @@
import java.util.Set;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IInterceptorBinding;
import org.jboss.tools.cdi.core.IInterceptorBindingDeclaration;
@@ -37,6 +38,6 @@
* @see org.jboss.tools.cdi.core.IInterceptorBinded#getInterceptorBindings()
*/
public Set<IInterceptorBinding> getInterceptorBindings() {
- return ClassBean.getInterceptorBindings(definition);
+ return CDIUtil.getAllInterceptorBindings(this);
}
}
\ No newline at end of file
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/StereotypeElement.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/StereotypeElement.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/StereotypeElement.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -16,6 +16,7 @@
import java.util.Set;
import org.eclipse.jdt.core.IAnnotation;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IAnnotationDeclaration;
import org.jboss.tools.cdi.core.IInterceptorBinding;
import org.jboss.tools.cdi.core.IInterceptorBindingDeclaration;
@@ -63,7 +64,7 @@
* @see org.jboss.tools.cdi.core.IInterceptorBinded#getInterceptorBindings()
*/
public Set<IInterceptorBinding> getInterceptorBindings() {
- return ClassBean.getInterceptorBindings(definition);
+ return CDIUtil.getAllInterceptorBindings(this);
}
/*
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -11,6 +11,7 @@
package org.jboss.tools.cdi.internal.core.impl.definition;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -19,9 +20,13 @@
import org.eclipse.jdt.core.ISourceRange;
import org.eclipse.jdt.core.IType;
import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
import org.jboss.tools.cdi.core.IInterceptorBinding;
+import org.jboss.tools.cdi.core.IInterceptorBindingDeclaration;
+import org.jboss.tools.cdi.core.IStereotypeDeclaration;
import org.jboss.tools.cdi.internal.core.impl.AnnotationDeclaration;
import org.jboss.tools.cdi.internal.core.impl.ClassBean;
+import org.jboss.tools.cdi.internal.core.impl.InterceptorBindingDeclaration;
import org.jboss.tools.cdi.internal.core.impl.ParametedType;
import org.jboss.tools.common.model.project.ext.impl.ValueInfo;
import org.jboss.tools.common.model.util.EclipseJavaUtil;
@@ -136,12 +141,27 @@
@Override
public boolean isCDIAnnotated() {
- return super.isCDIAnnotated() || isDisposer() || isObserver() || getPreDestroyMethod() != null || getPostConstructorMethod() != null || !getInterceptorBindings().isEmpty();
+ return super.isCDIAnnotated() || isDisposer() || isObserver() || getPreDestroyMethod() != null || getPostConstructorMethod() != null || !getInterceptorBindings().isEmpty() || hasStereotypeDeclarations();
}
public Set<IInterceptorBinding> getInterceptorBindings() {
- return ClassBean.getInterceptorBindings(this);
+ Set<IInterceptorBinding> result = new HashSet<IInterceptorBinding>();
+ Set<IInterceptorBindingDeclaration> declarations = ClassBean.getInterceptorBindingDeclarations(this);
+ for (IInterceptorBindingDeclaration declaration: declarations) {
+ result.add(declaration.getInterceptorBinding());
+ }
+ return result;
}
+
+ public boolean hasStereotypeDeclarations() {
+ List<IAnnotationDeclaration> as = getAnnotations();
+ for (IAnnotationDeclaration a: as) {
+ if(a instanceof IStereotypeDeclaration) {
+ return true;
+ }
+ }
+ return false;
+ }
public List<ParameterDefinition> getParameters() {
return parameters;
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2010-07-09 12:44:37 UTC (rev 23343)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2010-07-09 12:51:30 UTC (rev 23344)
@@ -411,12 +411,14 @@
*/
try {
if(hasConflictedInterceptorBindings(bean)) {
+ //TODO consider putting markers to interceptor bindings/stereotype declarations.
ITextSourceReference reference = CDIUtil.convertToSourceReference(bean.getBeanClass().getNameRange());
addError(CDIValidationMessages.CONFLICTING_INTERCEPTOR_BINDINGS, CDIPreferences.CONFLICTING_INTERCEPTOR_BINDINGS, reference, bean.getResource());
}
Set<IBeanMethod> methods = bean.getAllMethods();
for (IBeanMethod method : methods) {
if(hasConflictedInterceptorBindings(method)) {
+ //TODO consider putting markers to interceptor bindings/stereotype declarations.
ITextSourceReference reference = CDIUtil.convertToSourceReference(method.getMethod().getNameRange());
addError(CDIValidationMessages.CONFLICTING_INTERCEPTOR_BINDINGS, CDIPreferences.CONFLICTING_INTERCEPTOR_BINDINGS, reference, bean.getResource());
}
More information about the jbosstools-commits
mailing list