Author: scabanovich
Date: 2011-08-18 18:30:04 -0400 (Thu, 18 Aug 2011)
New Revision: 34075
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/ICDIElement.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIElement.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/ClassBean.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
JBIDE-9564
https://issues.jboss.org/browse/JBIDE-9564
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/ICDIElement.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/ICDIElement.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/ICDIElement.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -48,4 +48,12 @@
* @return resource
*/
IResource getResource();
+
+ /**
+ * Returns true while declarations of this object exist and can be found in sources
+ * by stored handles.
+ *
+ * @return
+ */
+ boolean exists();
}
\ No newline at end of file
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/AbstractBeanElement.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -56,6 +56,11 @@
public AbstractBeanElement() {}
+ @Override
+ public boolean exists() {
+ return getDefinition().exists();
+ }
+
public void setDefinition(AbstractMemberDefinition definition) {
this.definition = definition;
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIElement.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIElement.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIElement.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -31,10 +31,12 @@
protected CDIElement parent;
protected IPath source;
+ @Override
public CDIProject getCDIProject() {
return parent != null ? parent.getCDIProject() : null;
}
+ @Override
public ICDIProject getDeclaringProject() {
return parent != null ? parent.getDeclaringProject() : null;
}
@@ -62,6 +64,7 @@
return parent;
}
+ @Override
public IResource getResource() {
IPath path = getSourcePath();
if(path == null) return null;
@@ -70,6 +73,7 @@
return r;
}
+ @Override
public IPath getSourcePath() {
return source != null ? source : parent != null ? parent.getSourcePath() : null;
}
@@ -78,4 +82,8 @@
this.source = source;
}
+ @Override
+ public boolean exists() {
+ return parent != null && parent.exists();
+ }
}
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-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -104,14 +104,21 @@
public CDIProject() {}
+ @Override
public CDICoreNature getNature() {
return n;
}
+ @Override
public void setNature(CDICoreNature n) {
this.n = n;
}
+ @Override
+ public boolean exists() {
+ return n != null && n.getProject() != null &&
n.getProject().isAccessible();
+ }
+
/*
* (non-Javadoc)
* @see org.jboss.tools.cdi.core.IBeanManager#getBeans()
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -66,6 +66,12 @@
public ClassBean() {}
+ @Override
+ public boolean exists() {
+ IType t = getBeanClass();
+ return t != null && t.exists();
+ }
+
public void setDefinition(TypeDefinition definition) {
setSourcePath(definition.getType().getPath());
super.setDefinition(definition);
@@ -132,7 +138,6 @@
return result;
}
-
public Set<IBeanMethod> getBeanConstructors() {
Set<IBeanMethod> result = new HashSet<IBeanMethod>();
IBeanMethod defaultConstructor = null;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/AbstractMemberDefinition.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -232,4 +232,8 @@
public ITextSourceReference getOriginalDefinition() {
return originalDefinition;
}
+
+ public boolean exists() {
+ return member instanceof IJavaElement && ((IJavaElement)member).exists();
+ }
}
\ No newline at end of file
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-08-18
21:49:57 UTC (rev 34074)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-08-18
22:30:04 UTC (rev 34075)
@@ -507,7 +507,7 @@
if (reporter.isCancelled()) {
return;
}
- if(!shouldValidateType(bean.getBeanClass())) {
+ if(!bean.exists() || !shouldValidateType(bean.getBeanClass())) {
return;
}
String beanPath = bean.getResource().getFullPath().toOSString();
@@ -541,7 +541,9 @@
if(type!=null && !type.isBinary()) {
getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, type.getPath(),
false);
}
- validateInjectionPoint(point);
+ if(point.exists()) {
+ validateInjectionPoint(point);
+ }
}
if (bean instanceof IInterceptor) {
@@ -965,7 +967,7 @@
Set<IBeanMethod> boundDisposers = new HashSet<IBeanMethod>();
Set<IProducer> producers = bean.getProducers();
for (IProducer producer : producers) {
- if (producer instanceof IProducerMethod) {
+ if (producer instanceof IProducerMethod && producer.exists()) {
IProducerMethod producerMethod = (IProducerMethod) producer;
Set<IBeanMethod> disposerMethods =
producer.getCDIProject().resolveDisposers(producerMethod);
boundDisposers.addAll(disposerMethods);
@@ -985,6 +987,9 @@
}
for (IBeanMethod disposer : disposers) {
+ if(!disposer.exists()) {
+ continue;
+ }
List<IParameter> params = disposer.getParameters();
/*
@@ -994,7 +999,7 @@
Set<ITextSourceReference> disposerDeclarations = new
HashSet<ITextSourceReference>();
for (IParameter param : params) {
ITextSourceReference declaration =
param.getAnnotationPosition(CDIConstants.DISPOSES_ANNOTATION_TYPE_NAME);
- if (declaration != null) {
+ if (declaration != null && param.exists()) {
disposerDeclarations.add(declaration);
}
}
@@ -1016,7 +1021,7 @@
declarations.addAll(disposerDeclarations);
for (IParameter param : params) {
ITextSourceReference declaration =
param.getAnnotationPosition(CDIConstants.OBSERVERS_ANNOTATION_TYPE_NAME);
- if (declaration != null) {
+ if (declaration != null && param.exists()) {
declarations.add(declaration);
observesExists = true;
}