[jbosstools-commits] JBoss Tools SVN: r43299 - 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
Wed Aug 29 12:12:44 EDT 2012


Author: scabanovich
Date: 2012-08-29 12:12:44 -0400 (Wed, 29 Aug 2012)
New Revision: 43299

Modified:
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.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/DefinitionContext.java
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
JBIDE-12479
https://issues.jboss.org/browse/JBIDE-12479


Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
 package org.jboss.tools.cdi.core;
 
 import java.util.Collection;
-import java.util.Set;
 
 import org.jboss.tools.common.java.IAnnotationDeclaration;
 import org.jboss.tools.common.java.IParametedType;

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInterceptorBinded.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
 package org.jboss.tools.cdi.core;
 
 import java.util.Collection;
-import java.util.Set;
 
 /**
  * Represents an element which can have interceptor bindings.

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IParameter.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
 package org.jboss.tools.cdi.core;
 
 import java.util.Collection;
-import java.util.Set;
 
 import org.jboss.tools.common.java.IParametedType;
 

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IStereotyped.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -11,7 +11,6 @@
 package org.jboss.tools.cdi.core;
 
 import java.util.Collection;
-import java.util.Set;
 
 import org.jboss.tools.common.java.IAnnotated;
 

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	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -583,9 +583,10 @@
 		}
 		IType jType = type.getType();
 		if(jType == null) return false;
+		String typeName = jType.getFullyQualifiedName();
 		for (IParametedType t: types) {
 			IType jType1 = t.getType();
-			if(jType1 == null || !jType.getFullyQualifiedName().equals(jType1.getFullyQualifiedName())) continue;
+			if(jType1 == null || !jType.getElementName().equals(jType1.getElementName()) || !typeName.equals(jType1.getFullyQualifiedName())) continue;
 			if(((ParametedType)t).getArrayIndex() != ((ParametedType)type).getArrayIndex()) continue;
 			if(((ParametedType)t).isAssignableTo((ParametedType)type, false)) {
 				return true;
@@ -595,38 +596,38 @@
 	}
 
 	public static boolean areMatchingQualifiers(Collection<IQualifierDeclaration> beanQualifiers, Collection<IQualifierDeclaration> injectionQualifiers) throws CoreException {
-		if(beanQualifiers.isEmpty()) {
-			if(injectionQualifiers.isEmpty()) {
-				return true;
-			}
+		if(beanQualifiers.isEmpty() && injectionQualifiers.isEmpty()) {
+			return true;
 		}
 
-		Set<String> injectionKeys = new HashSet<String>();
+		Set<String> keys = new HashSet<String>();
 		for (IQualifierDeclaration d: injectionQualifiers) {
-			injectionKeys.add(getAnnotationDeclarationKey(d));
+			keys.add(getAnnotationDeclarationKey(d));
 		}
 
-		if(injectionKeys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
+		if(keys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
 			return true;
 		}
-		if(injectionKeys.isEmpty()) {
-			injectionKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+		if(keys.isEmpty()) {
+			keys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
 		}
 
-		Set<String> beanKeys = new HashSet<String>();
 		if(beanQualifiers.isEmpty()) {
-			beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
-		} else for (IQualifierDeclaration d: beanQualifiers) {
-			beanKeys.add(getAnnotationDeclarationKey(d));
+			keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+		} else {
+			int beanKeySize = 0;
+			String beanKey = null;
+			for (IQualifierDeclaration d: beanQualifiers) {
+				beanKeySize++;
+				beanKey = getAnnotationDeclarationKey(d);
+				keys.remove(beanKey);
+			}
+			if(beanKeySize == 1 && beanKey.startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
+				keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+			}
 		}
-		if(beanKeys.size() == 1 && beanKeys.iterator().next().startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
-			beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
-		}
 
-		for(String k: injectionKeys) {
-			if(!beanKeys.contains(k)) return false;
-		}
-		return true;
+		return keys.isEmpty();
 	}
 
 	/**
@@ -637,38 +638,38 @@
 	 * @throws CoreException
 	 */
 	public static boolean areMatchingQualifiers(Collection<IQualifierDeclaration> beanQualifiers, IType... injectionQualifiers) throws CoreException {
-		if(!beanQualifiers.isEmpty() || injectionQualifiers.length != 0) {
+		if(beanQualifiers.isEmpty() && injectionQualifiers.length == 0) {
+			return true;
+		}
 
-			Set<String> injectionKeys = new HashSet<String>();
-			for (IType d: injectionQualifiers) {
-				injectionKeys.add(d.getFullyQualifiedName().replace('$', '.'));
-			}
+		Set<String> keys = new HashSet<String>();
+		for (IType d: injectionQualifiers) {
+			keys.add(d.getFullyQualifiedName().replace('$', '.'));
+		}
 	
-			if(!injectionKeys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
-				if(injectionKeys.isEmpty()) {
-					injectionKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
-				}
-		
-				Set<String> beanKeys = new HashSet<String>();
-				if(beanQualifiers.isEmpty()) {
-					beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
-				} else {
-					for (IAnnotationDeclaration d: beanQualifiers) {
-						beanKeys.add(d.getTypeName().replace('$', '.'));
-					}
-				}
-				if(beanKeys.size() == 1 && beanKeys.iterator().next().startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
-					beanKeys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
-				}
-		
-				for(String k: injectionKeys) {
-					if(!beanKeys.contains(k)) { 
-						return false;
-					}
-				}
+		if(keys.contains(CDIConstants.ANY_QUALIFIER_TYPE_NAME)) {
+			return true;
+		}
+
+		if(keys.isEmpty()) {
+			keys.add(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+		}
+		if(beanQualifiers.isEmpty()) {
+			keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+		} else {
+			int beanKeySize = 0;
+			String beanKey = null;
+			for (IAnnotationDeclaration d: beanQualifiers) {
+				beanKeySize++;
+				beanKey = d.getTypeName().replace('$', '.');
+				keys.remove(beanKey);
 			}
+			if(beanKeySize == 1 && beanKey.startsWith(CDIConstants.NAMED_QUALIFIER_TYPE_NAME)) {
+				keys.remove(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME);
+			}
 		}
-		return true;
+	
+		return keys.isEmpty();
 	}
 
 	public static boolean areMatchingEventQualifiers(Collection<IQualifierDeclaration> eventQualifiers, Collection<IQualifierDeclaration> paramQualifiers) throws CoreException {
@@ -705,8 +706,8 @@
 		Collection<IMethod> nb = ignoredMembers == null ? new ArrayList<IMethod>() : ignoredMembers;
 		IType type = d.getType();
 		StringBuffer result = new StringBuffer();
-		result.append(type.getFullyQualifiedName());
-		if(CDIConstants.NAMED_QUALIFIER_TYPE_NAME.equals(type.getFullyQualifiedName())) {
+		result.append(d.getTypeName());
+		if(CDIConstants.NAMED_QUALIFIER_TYPE_NAME.equals(d.getTypeName())) {
 			//Declared name is excluded from comparison; names should be compared by invoking getName() method.
 			return result.toString();
 		}

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/DefinitionContext.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -426,7 +426,7 @@
 			result = null;
 		}
 		if(result == null || usedAnnotations.containsKey(fullyQualifiedName) 
-				|| (result.getType().getResource() != null && result.getType().getResource().getProject() != project.getProject())
+				|| (result.getType().getJavaProject() != null && result.getType().getJavaProject().getProject() != project.getProject())
 				) {
 			//3. Look in annotations loaded by used projects
 			Set<CDICoreNature> ns = project.getCDIProjects(false);

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	2012-08-29 15:11:08 UTC (rev 43298)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java	2012-08-29 16:12:44 UTC (rev 43299)
@@ -12,8 +12,10 @@
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -730,15 +732,12 @@
 			if(beans.size()>1 && beans.contains(bean)) {
 				// We need to sort bean element names to make sure we report the same problem message for the same bean name for every validation process.
 				IBean[] sortedBeans = beans.toArray(new IBean[beans.size()]);
-				for (int i = sortedBeans.length - 1; i >= 0; i--) {
-					for (int j = 0; j < i; j++) {
-						if (sortedBeans[j].getElementName().compareTo(sortedBeans[j + 1].getElementName()) > 0) {
-							IBean t = sortedBeans[j];
-							sortedBeans[j] = sortedBeans[j+1];
-							sortedBeans[j+1] = t;
-						}
+				Arrays.sort(sortedBeans, new Comparator<IBean>() {
+					@Override
+					public int compare(IBean o1, IBean o2) {
+						return o1.getElementName().compareTo(o2.getElementName());
 					}
-				}
+				});
 				ITextSourceReference reference = bean.getNameLocation(true);
 				Set<String> names = new HashSet<String>();
 				String bName = bean.getElementName();
@@ -1593,7 +1592,7 @@
 				if(superType!=null) {
 					for (IInjectionPoint injection : cdiProject.getInjections(superType.getFullyQualifiedName())) {
 						if(!injection.getClassBean().getBeanClass().isBinary() && injection.getClassBean()!=bean) {
-							relatedResources.add(injection.getResource().getFullPath());
+							relatedResources.add(injection.getSourcePath()); //injection.getResource().getFullPath();
 						}
 					}
 				}



More information about the jbosstools-commits mailing list