Author: dazarov
Date: 2012-02-08 12:58:25 -0500 (Wed, 08 Feb 2012)
New Revision: 38517
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIMarkerResolutionUtils.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/ValuedQualifier.java
Log:
Wizard 'Specify CDI Bean for the Injection Point' does not compute correctly
condition 'can finish'
https://issues.jboss.org/browse/JBIDE-10637
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIMarkerResolutionUtils.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIMarkerResolutionUtils.java 2012-02-08
17:46:07 UTC (rev 38516)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIMarkerResolutionUtils.java 2012-02-08
17:58:25 UTC (rev 38517)
@@ -345,7 +345,7 @@
return false;
}
}
- if(bean.getQualifiers().size() == qualifiers.size())
+ if(bean.getQualifiers().size() == qualifiers.size() &&
bean.getQualifiers().size() != 0)
return true;
return false;
}
@@ -354,31 +354,20 @@
Set<IQualifier> qualifiers = bean.getQualifiers();
for(IQualifier q : qualifiers){
- if(q.getSourceType().getFullyQualifiedName().equals(valuedQualifier.getQualifier().getSourceType().getFullyQualifiedName()))
+ IQualifierDeclaration declaration =
CDIMarkerResolutionUtils.findQualifierDeclaration(bean, q);
+ ValuedQualifier vq = null;
+ if(declaration != null){
+ vq = new ValuedQualifier(q, declaration);
+ }else{
+ vq = new ValuedQualifier(q);
+ }
+ if(vq.equals(valuedQualifier)){
return true;
+ }
}
return false;
}
- public static String findQualifierValue(IBean bean, IQualifier qualifier){
- IQualifierDeclaration declaration = findQualifierDeclaration(bean, qualifier);
- if(declaration == null)
- return "";
-
- return findQualifierValue(bean, declaration);
- }
-
- public static String findQualifierValue(IBean bean, IQualifierDeclaration declaration){
- Object value = declaration.getMemberValue(null);
-
- String result = value == null ? "" : value.toString();
-
- if("".equals(result) &&
declaration.getQualifier().getSourceType().getFullyQualifiedName().equals(CDIConstants.NAMED_QUALIFIER_TYPE_NAME))
- result = getELName(bean);
-
- return result;
- }
-
public static IQualifierDeclaration findQualifierDeclaration(IBean bean, IQualifier
qualifier){
Set<IQualifierDeclaration> declarations = bean.getQualifierDeclarations();
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/ValuedQualifier.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/ValuedQualifier.java 2012-02-08
17:46:07 UTC (rev 38516)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/ValuedQualifier.java 2012-02-08
17:58:25 UTC (rev 38517)
@@ -114,6 +114,15 @@
return generateValue();
}
+ public Object getValue(String name){
+ for(Pair pair : pairs){
+ if(pair.name.equals(name)){
+ return pair.value;
+ }
+ }
+ return null;
+ }
+
public String getStringValue(){
for(Pair pair : pairs){
if(pair.name.equals("value") &&
pair.type.equals("String")){
@@ -155,8 +164,14 @@
@Override
public boolean equals(Object obj) {
- if(obj instanceof ValuedQualifier)
- return
getQualifier().getSourceType().getFullyQualifiedName().equals(((ValuedQualifier)obj).getQualifier().getSourceType().getFullyQualifiedName());
+ if(obj instanceof ValuedQualifier &&
getQualifier().getSourceType().getFullyQualifiedName().equals(((ValuedQualifier)obj).getQualifier().getSourceType().getFullyQualifiedName())){
+ for(Pair pair : ((ValuedQualifier)obj).getValuePairs()){
+ if(!pair.value.equals(getValue(pair.name)) || pair.value == null){
+ return false;
+ }
+ }
+ return true;
+ }
return false;
}