Author: scabanovich
Date: 2011-04-04 20:37:24 -0400 (Mon, 04 Apr 2011)
New Revision: 30316
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointField.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointParameter.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/InjectionPointField.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointParameter.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/FieldDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParameterDefinition.java
Log:
JBIDE-8198
https://issues.jboss.org/browse/JBIDE-8198
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointField.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointField.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointField.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -17,4 +17,11 @@
*/
public interface IInjectionPointField extends IBeanField, IInjectionPoint {
+ /**
+ * Extensions can override type.
+ *
+ * @return type that was set by an extension instead of Java member type
+ */
+ public ITypeDeclaration getOverridenType();
+
}
\ No newline at end of file
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointParameter.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointParameter.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPointParameter.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -17,4 +17,11 @@
*/
public interface IInjectionPointParameter extends IParameter, IInjectionPoint {
+ /**
+ * Extensions can override type.
+ *
+ * @return type that was set by an extension instead of Java parameter type
+ */
+ public ITypeDeclaration getOverridenType();
+
}
\ No newline at end of file
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 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -45,6 +45,7 @@
import org.jboss.tools.cdi.core.IDecorator;
import org.jboss.tools.cdi.core.IInjectionPoint;
import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.cdi.core.IInjectionPointParameter;
import org.jboss.tools.cdi.core.IInterceptor;
import org.jboss.tools.cdi.core.IInterceptorBinding;
import org.jboss.tools.cdi.core.IObserverMethod;
@@ -284,6 +285,14 @@
if(type == null) {
return result;
}
+
+ IParametedType overridenType = null;
+ if(injectionPoint instanceof IInjectionPointField) {
+ overridenType = ((IInjectionPointField)injectionPoint).getOverridenType();
+ } else if(injectionPoint instanceof IInjectionPointParameter) {
+ overridenType = ((IInjectionPointParameter)injectionPoint).getOverridenType();
+ }
+ if(overridenType != null) type = overridenType;
if(type.getType() != null &&
CDIConstants.EVENT_TYPE_NAME.equals(type.getType().getFullyQualifiedName())) {
List<? extends IParametedType> ps = type.getParameters();
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointField.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointField.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointField.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -14,6 +14,7 @@
import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IAnnotationDeclaration;
import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.cdi.core.ITypeDeclaration;
/**
*
@@ -24,6 +25,10 @@
public InjectionPointField() {}
+ public ITypeDeclaration getOverridenType() {
+ return getDefinition().getOverridenType();
+ }
+
/*
* (non-Javadoc)
* @see org.jboss.tools.cdi.core.IInjectionPoint#getDelegateAnnotation()
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointParameter.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointParameter.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointParameter.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -19,6 +19,7 @@
import org.jboss.tools.cdi.core.IInjectionPointParameter;
import org.jboss.tools.cdi.core.IQualifier;
import org.jboss.tools.cdi.core.IQualifierDeclaration;
+import org.jboss.tools.cdi.core.ITypeDeclaration;
import org.jboss.tools.common.text.ITextSourceReference;
/**
@@ -29,6 +30,9 @@
public class InjectionPointParameter extends Parameter implements
IInjectionPointParameter {
+ public ITypeDeclaration getOverridenType() {
+ return definition.getOverridenType();
+ }
/*
* (non-Javadoc)
* @see org.jboss.tools.cdi.core.IInjectionPoint#getDelegateAnnotation()
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/FieldDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/FieldDefinition.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/FieldDefinition.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -11,6 +11,7 @@
package org.jboss.tools.cdi.internal.core.impl.definition;
import org.eclipse.jdt.core.IField;
+import org.jboss.tools.cdi.core.ITypeDeclaration;
/**
*
@@ -19,6 +20,7 @@
*/
public class FieldDefinition extends BeanMemberDefinition {
IField field;
+ ITypeDeclaration overridenType = null;
public FieldDefinition() {}
@@ -31,4 +33,12 @@
return field;
}
+ public void setOverridenType(ITypeDeclaration overridenType) {
+ this.overridenType = overridenType;
+ }
+
+ public ITypeDeclaration getOverridenType() {
+ return overridenType;
+ }
+
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParameterDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParameterDefinition.java 2011-04-05
00:10:21 UTC (rev 30315)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParameterDefinition.java 2011-04-05
00:37:24 UTC (rev 30316)
@@ -27,8 +27,8 @@
import org.jboss.tools.cdi.core.IAnnotationDeclaration;
import org.jboss.tools.cdi.internal.core.impl.AnnotationDeclaration;
import org.jboss.tools.cdi.internal.core.impl.AnnotationLiteral;
-import org.jboss.tools.cdi.internal.core.impl.JavaAnnotation;
import org.jboss.tools.cdi.internal.core.impl.ParametedType;
+import org.jboss.tools.cdi.internal.core.impl.TypeDeclaration;
import org.jboss.tools.common.model.util.EclipseJavaUtil;
import org.jboss.tools.common.text.ITextSourceReference;
@@ -37,6 +37,7 @@
protected String name;
protected ParametedType type;
+ protected TypeDeclaration overridenType;
protected int index;
protected ITextSourceReference position = null;
@@ -52,6 +53,14 @@
return type;
}
+ public TypeDeclaration getOverridenType() {
+ return overridenType;
+ }
+
+ public void setOverridenType(TypeDeclaration overridenType) {
+ this.overridenType = overridenType;
+ }
+
public MethodDefinition getMethodDefinition() {
return methodDefinition;
}
@@ -104,7 +113,11 @@
} else if(params.endsWith(".class")) {
params = params.substring(0, params.length() - 6);
IMemberValuePair pair = new MemberValuePair("value", params,
IMemberValuePair.K_CLASS);
- return new IMemberValuePair[]{pair};
+ return new IMemberValuePair[]{pair};
+ } else if(params.startsWith("\"") &&
params.endsWith("\"")) {
+ params = params.substring(1, params.length() - 1);
+ IMemberValuePair pair = new MemberValuePair("value", params,
IMemberValuePair.K_STRING);
+ return new IMemberValuePair[]{pair};
} else {
//TODO
}
@@ -157,4 +170,5 @@
String text =
methodDefinition.getTypeDefinition().getContent().substring(pos.getStartPosition(),
pos.getStartPosition() + pos.getLength());
return text;
}
+
}
\ No newline at end of file