Author: dazarov
Date: 2011-06-10 16:43:05 -0400 (Fri, 10 Jun 2011)
New Revision: 32019
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java
Log:
https://issues.jboss.org/browse/JBIDE-9115
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 2011-06-10
19:40:05 UTC (rev 32018)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2011-06-10
20:43:05 UTC (rev 32019)
@@ -1089,11 +1089,38 @@
return result;
}
+
+ /**
+ * returns set of IBean elements filtered in order to have unique IJavaElement
+ * @param cdiProject
+ * @param path
+ * @return
+ */
+ public static Set<IBean> getFilteredBeans(ICDIProject cdiProject, IPath path){
+ Set<IBean> beans = cdiProject.getBeans(path);
+ HashSet<IJavaElement> elements = new HashSet<IJavaElement>();
+ HashSet<IBean> result = new HashSet<IBean>();
+
+ for(IBean bean : beans){
+ IJavaElement element = getJavaElement(bean);
+ if(!elements.contains(element)){
+ elements.add(element);
+ result.add(bean);
+ }
+ }
+
+ return result;
+ }
public static List<IBean> getSortedBeans(ICDIProject cdiProject, boolean
attemptToResolveAmbiguousDependency, IInjectionPoint injectionPoint){
Set<IBean> beans = getFilteredBeans(cdiProject,
attemptToResolveAmbiguousDependency, injectionPoint);
return sortBeans(beans);
}
+
+ public static List<IBean> getSortedBeans(ICDIProject cdiProject, IPath path){
+ Set<IBean> beans = getFilteredBeans(cdiProject, path);
+ return sortBeans(beans);
+ }
public static IJavaElement getJavaElement(ICDIElement cdiElement){
if(cdiElement instanceof IJavaMemberReference)
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java 2011-06-10
19:40:05 UTC (rev 32018)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java 2011-06-10
20:43:05 UTC (rev 32019)
@@ -237,7 +237,7 @@
return null;
}
- Set<IBean> allBeans = cdiProject.getBeans(file.getFullPath());
+ Set<IBean> allBeans = CDIUtil.getFilteredBeans(cdiProject, file.getFullPath());
IInjectionPoint ip = CDIUtil.findInjectionPoint(allBeans, element, start);
@@ -246,11 +246,7 @@
private List<IBean> findBeans(IInjectionPoint injectionPoint){
ICDIProject cdiProject = injectionPoint.getCDIProject();
- Set<IBean> beanSet = cdiProject.getBeans(false, injectionPoint);
-
- List<IBean> beanList = CDIUtil.sortBeans(beanSet);
-
- return beanList;
+ return CDIUtil.getSortedBeans(cdiProject, false, injectionPoint);
}
private IMethod findMethod(IFile file, int start){