Author: scabanovich
Date: 2010-05-25 07:23:14 -0400 (Tue, 25 May 2010)
New Revision: 22303
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/definition/MethodDefinition.java
Log:
https://jira.jboss.org/browse/JBIDE-6339
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-05-25
11:18:21 UTC (rev 22302)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMethod.java 2010-05-25
11:23:14 UTC (rev 22303)
@@ -49,7 +49,7 @@
}
protected Parameter newParameter() {
- return new Parameter();
+ return ((MethodDefinition)definition).isConstructor() ? new InjectionPointParameter() :
new Parameter();
}
public IMethod getMethod() {
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-05-25
11:18:21 UTC (rev 22302)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java 2010-05-25
11:23:14 UTC (rev 22303)
@@ -58,9 +58,13 @@
}
+ boolean parametersAreInjectionPoints() {
+ return isConstructor || getProducesAnnotation() != null || getInjectAnnotation() !=
null;
+ }
+
void loadParamDefinitions(IType contextType, DefinitionContext context) throws
CoreException {
if(method == null) return;
- boolean isProducer = getProducesAnnotation() != null;
+ boolean parametersAreInjectionPoints = parametersAreInjectionPoints();
String[] parameterNames = method.getParameterNames();
if(parameterNames == null || parameterNames.length == 0) return;
if(contextType == null || contextType.isBinary()) return;
@@ -82,7 +86,7 @@
int start = paramStart + 1;
for (int i = 0; i < params.length; i++) {
- if(params[i].indexOf('@') < 0 && !isProducer) {
+ if(params[i].indexOf('@') < 0 && !parametersAreInjectionPoints) {
start += params[i].length() + 1;
continue; //do not need parameters without annotation
}