Author: dazarov
Date: 2011-10-31 20:37:39 -0400 (Mon, 31 Oct 2011)
New Revision: 36101
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java
Log:
Quickfix and Wizard for fixing ambigious injection warning is confusing
https://issues.jboss.org/browse/JBIDE-9940
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java 2011-11-01
00:20:27 UTC (rev 36100)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java 2011-11-01
00:37:39 UTC (rev 36101)
@@ -23,6 +23,7 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.dialogs.Dialog;
@@ -175,9 +176,11 @@
ValuedQualifier lastQualifier = null;
String beanTypeName = bean.getBeanClass().getFullyQualifiedName();
String beanPackage =
beanTypeName.substring(0,beanTypeName.lastIndexOf(MarkerResolutionUtils.DOT));
+ IJavaProject beanJavaProject = bean.getBeanClass().getJavaProject();
String injectionPointTypeName =
injectionPoint.getClassBean().getBeanClass().getFullyQualifiedName();
String injectionPointPackage =
injectionPointTypeName.substring(0,injectionPointTypeName.lastIndexOf(MarkerResolutionUtils.DOT));
+ IJavaProject injectionPointJavaProject =
injectionPoint.getBean().getBeanClass().getJavaProject();
boolean samePackage = beanPackage.equals(injectionPointPackage);
@@ -186,19 +189,22 @@
for(IQualifier q : qs){
ValuedQualifier vq = new ValuedQualifier(q);
if(!contains(originalQualifiers, vq) && !contains(qualifiers, vq) &&
!contains(deployed, vq)){
- boolean isPublic = true;
try{
- isPublic = Flags.isPublic(q.getSourceType().getFlags());
- }catch(JavaModelException ex){
+ boolean isPublic = Flags.isPublic(q.getSourceType().getFlags());
+
+ String qualifierTypeName = q.getSourceType().getFullyQualifiedName();
+ String qualifierPackage =
qualifierTypeName.substring(0,qualifierTypeName.lastIndexOf(MarkerResolutionUtils.DOT));
+ if((isPublic || (samePackage &&
injectionPointPackage.equals(qualifierPackage))) ){
+ if(beanJavaProject.findType(qualifierTypeName) != null &&
injectionPointJavaProject.findType(qualifierTypeName) != null){
+ qualifiers.add(vq);
+ availableTableViewer.add(vq);
+ lastQualifier = vq;
+ }
+ }
+ } catch (JavaModelException ex) {
CDIUIPlugin.getDefault().logError(ex);
}
- String qualifierTypeName = q.getSourceType().getFullyQualifiedName();
- String qualifierPackage =
qualifierTypeName.substring(0,qualifierTypeName.lastIndexOf(MarkerResolutionUtils.DOT));
- if((isPublic || (samePackage &&
injectionPointPackage.equals(qualifierPackage))) ){
- qualifiers.add(vq);
- availableTableViewer.add(vq);
- lastQualifier = vq;
- }
+
}
}
return lastQualifier;