Author: scabanovich
Date: 2011-08-17 19:49:39 -0400 (Wed, 17 Aug 2011)
New Revision: 34024
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/internal/core/impl/CDIProject.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java
Log:
JBIDE-6517
https://issues.jboss.org/browse/JBIDE-6517
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-08-17
23:40:05 UTC (rev 34023)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2011-08-17
23:49:39 UTC (rev 34024)
@@ -55,6 +55,7 @@
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
import org.jboss.tools.cdi.internal.core.impl.ClassBean;
+import org.jboss.tools.cdi.internal.core.validation.AnnotationValidationDelegate;
import org.jboss.tools.cdi.internal.core.validation.CDICoreValidator;
import org.jboss.tools.common.EclipseUtil;
import org.jboss.tools.common.java.IAnnotated;
@@ -1058,14 +1059,18 @@
for (Object q: os) {
String s = q.toString();
int i = s.lastIndexOf('.');
- if(i >= 0) s = s.substring(i + 1);
- result.add(s);
+ if(i >= 0 &&
AnnotationValidationDelegate.ELEMENT_TYPE_TYPE_NAME.equals(s.substring(0, i))) {
+ s = s.substring(i + 1);
+ result.add(s);
+ }
}
} else if(o != null) {
String s = o.toString();
int i = s.lastIndexOf('.');
- if(i >= 0) s = s.substring(i + 1);
- result.add(s);
+ if(i >= 0 &&
AnnotationValidationDelegate.ELEMENT_TYPE_TYPE_NAME.equals(s.substring(0, i))) {
+ s = s.substring(i + 1);
+ result.add(s);
+ }
}
return result;
}
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-08-17
23:40:05 UTC (rev 34023)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-08-17
23:49:39 UTC (rev 34024)
@@ -522,20 +522,7 @@
IMemberValuePair[] ps = d.getMemberValuePairs();
if (ps != null) for (IMemberValuePair p: ps) {
String n = p.getMemberName();
- Object o = p.getValue();
- int k = p.getValueKind();
- if(k == IMemberValuePair.K_QUALIFIED_NAME || k == IMemberValuePair.K_SIMPLE_NAME) {
- String s = o.toString();
- int dot = s.lastIndexOf('.');
- //We reduce value to simple name. That makes it not precise
- //and there must be a test that display limit of this approach.
- if(dot >= 0) {
- String s1 = s.substring(dot + 1);
- if(!"class".equals(s1)) {
- o = s1;
- }
- }
- }
+ Object o = d.getMemberValue(n);
values.put(n, o.toString());
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java 2011-08-17
23:40:05 UTC (rev 34023)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java 2011-08-17
23:49:39 UTC (rev 34024)
@@ -36,10 +36,11 @@
*/
public class AnnotationValidationDelegate extends CDICoreValidationDelegate {
- static final String TARGET_METHOD = "METHOD";
- static final String TARGET_FIELD = "FIELD";
- static final String TARGET_PARAMETER = "PARAMETER";
- static final String TARGET_TYPE = "TYPE";
+ public static final String ELEMENT_TYPE_TYPE_NAME =
"java.lang.annotation.ElementType";
+ public static final String TARGET_METHOD = "METHOD";
+ public static final String TARGET_FIELD = "FIELD";
+ public static final String TARGET_PARAMETER = "PARAMETER";
+ public static final String TARGET_TYPE = "TYPE";
static final String[] TMF = {TARGET_METHOD, TARGET_FIELD, TARGET_TYPE};
static final String[] MF = {TARGET_METHOD, TARGET_FIELD};
@@ -190,16 +191,8 @@
if(retention == null) {
validator.addError(message,
CDIPreferences.MISSING_OR_INCORRECT_TARGET_OR_RETENTION_IN_ANNOTATION_TYPE,
CDIUtil.convertToSourceReference(type.getSourceType().getNameRange(), resource), resource,
message_id);
} else {
- boolean ok = false;
Object o = retention.getMemberValue(null);
- if(o != null) {
- ok = true;
- String s = o.toString();
- int i = s.lastIndexOf('.');
- if(i >= 0) s = s.substring(i + 1);
- if(!"RUNTIME".equals(s)) ok = false;
- }
- if(!ok) {
+ if(o == null || !CDIConstants.RETENTION_POLICY_RUNTIME_TYPE_NAME.equals(o.toString()))
{
validator.addError(message,
CDIPreferences.MISSING_OR_INCORRECT_TARGET_OR_RETENTION_IN_ANNOTATION_TYPE, retention,
resource, message_id);
}
}