Author: scabanovich
Date: 2011-08-04 15:11:05 -0400 (Thu, 04 Aug 2011)
New Revision: 33596
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IBean.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMember.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/EventBean.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/InjectionPointMethod.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/ProducerField.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerMethod.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIRenameProcessor.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
Log:
JBIDE-9453
https://issues.jboss.org/browse/JBIDE-9453
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IBean.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IBean.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IBean.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -46,11 +46,13 @@
* Returns the location of a name declaration of this bean. If the bean
* doesn't have the name declaration then null will be returned. May be
* declared in a stereotype. May be a declaration of @Name annotation or
- * location of Java class name declaration.
+ * stereotype declaration if @Named is declared in that stereotype
+ * and parameter stereotypeLocation is true.
*
+ * @param stereotypeLocation
* @return the location of a name declaration of this bean.
*/
- ITextSourceReference getNameLocation();
+ ITextSourceReference getNameLocation(boolean stereotypeLocation);
/**
* Obtains the legal types of the bean class or producer method or field.
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/IInjectionPoint.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -77,5 +77,5 @@
*
* @return name declared by @Named or null if declaration is missing
*/
- public String getName();
+ public String getBeanName();
}
\ No newline at end of file
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMember.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMember.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/BeanMember.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -42,17 +42,6 @@
return (BeanMemberDefinition)definition;
}
- public String getName() {
- AnnotationDeclaration d = getDefinition().getNamedAnnotation();
- if(d != null) {
- Object n = d.getMemberValue(null);
- if(n != null) {
- return n.toString();
- }
- }
- return null;
- }
-
protected void setMember(IJavaElement member) {
try {
String returnType = null;
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-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/CDIProject.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -357,7 +357,7 @@
}
boolean delegateInjectionPoint = injectionPoint.isDelegate();
- String injectionPointName = injectionPoint.getName();
+ String injectionPointName = injectionPoint.getBeanName();
for (IBean b: beans) {
if(b instanceof ClassBean && !(b instanceof IBuiltInBean)) {
@@ -385,7 +385,7 @@
if(delegateInjectionPoint && b == injectionPoint.getClassBean()) {
continue;
}
- if(injectionPointName != null && injectionPointName.equals(b.getName())) {
+ if(injectionPointName != null && !injectionPointName.equals(b.getName())) {
//
continue;
}
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-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ClassBean.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -351,8 +351,8 @@
return name;
}
- public ITextSourceReference getNameLocation() {
- return getDefinition().getNamedAnnotation();
+ public ITextSourceReference getNameLocation(boolean stereotypeLocation) {
+ return (stereotypeLocation) ? CDIUtil.getNamedDeclaration(this) :
findNamedAnnotation();
}
public ClassBean getSpecializedBean() {
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/EventBean.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/EventBean.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/EventBean.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -76,7 +76,7 @@
return null;
}
- public ITextSourceReference getNameLocation() {
+ public ITextSourceReference getNameLocation(boolean stereotypeLocation) {
return null;
}
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-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointField.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -32,7 +32,8 @@
return super.getType();
}
- public String getName() {
+ @Override
+ public String getBeanName() {
AnnotationDeclaration d = getDefinition().getNamedAnnotation();
if(d != null) {
Object n = d.getMemberValue(null);
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointMethod.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointMethod.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointMethod.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -51,4 +51,10 @@
public boolean hasDefaultQualifier() {
return CDIUtil.containsDefaultQualifier(this);
}
+
+ @Override
+ public String getBeanName() {
+ return null;
+ }
+
}
\ No newline at end of file
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-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/InjectionPointParameter.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -66,4 +66,16 @@
public boolean hasDefaultQualifier() {
return CDIUtil.containsDefaultQualifier(this);
}
+
+ @Override
+ public String getBeanName() {
+ AnnotationDeclaration d = getDefinition().getNamedAnnotation();
+ if(d != null) {
+ Object n = d.getMemberValue(null);
+ if(n != null && n.toString().length() > 0) {
+ return n.toString();
+ }
+ }
+ return null;
+ }
}
\ No newline at end of file
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerField.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerField.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerField.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.IType;
import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.IInjectionPoint;
import org.jboss.tools.cdi.core.IProducerField;
@@ -99,8 +100,8 @@
return getField().getElementName();
}
- public ITextSourceReference getNameLocation() {
- return findNamedAnnotation();
+ public ITextSourceReference getNameLocation(boolean stereotypeLocation) {
+ return (stereotypeLocation) ? CDIUtil.getNamedDeclaration(this) :
findNamedAnnotation();
}
public IBean getSpecializedBean() {
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerMethod.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerMethod.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerMethod.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.IType;
import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IInjectionPoint;
import org.jboss.tools.cdi.core.IParameter;
import org.jboss.tools.cdi.core.IProducerMethod;
@@ -132,8 +133,8 @@
return name;
}
- public ITextSourceReference getNameLocation() {
- return findNamedAnnotation();
+ public ITextSourceReference getNameLocation(boolean stereotypeLocation) {
+ return (stereotypeLocation) ? CDIUtil.getNamedDeclaration(this) :
findNamedAnnotation();
}
public void setSpecializedBean(ProducerMethod other) {
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIRenameProcessor.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIRenameProcessor.java 2011-08-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/refactoring/CDIRenameProcessor.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -109,15 +109,22 @@
return;
}
- ITextSourceReference nameLocation = bean.getNameLocation();
+ //1. Get @Named declared directly, not in stereotype.
+ ITextSourceReference nameLocation = bean.getNameLocation(false);
+ //2. Get stereotype declaration declaring @Named, if @Named is not declared directly.
+ ITextSourceReference stereotypeLocation = nameLocation != null ? null :
bean.getNameLocation(true);
- if(nameLocation == null){
+ if(nameLocation == null && stereotypeLocation == null) {
status.addFatalError(CDICoreMessages.CDI_RENAME_PROCESSOR_BEAN_HAS_NO_NAME_LOCATION);
return;
}
String newText = "@Named(\""+getNewName()+"\")";
//$NON-NLS-1$ //$NON-NLS-2$
- change(declarationFile, nameLocation.getStartPosition(), nameLocation.getLength(),
newText);
+ if(nameLocation != null) {
+ change(declarationFile, nameLocation.getStartPosition(), nameLocation.getLength(),
newText);
+ } else if(stereotypeLocation != null) {
+ change(declarationFile, stereotypeLocation.getStartPosition() +
stereotypeLocation.getLength(), 0, " " + newText);
+ }
}
protected void renameBean(IProgressMonitor pm, IBean bean)throws CoreException{
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-04
17:58:27 UTC (rev 33595)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-08-04
19:11:05 UTC (rev 33596)
@@ -587,10 +587,7 @@
*/
Set<IBean> beans = cdiProject.getBeans(name, true);
if(beans.size()>1 && beans.contains(bean)) {
- ITextSourceReference reference = bean.getNameLocation();
- if(reference==null) {
- reference = CDIUtil.getNamedDeclaration(bean);
- }
+ ITextSourceReference reference = bean.getNameLocation(true);
Set<String> names = new HashSet<String>();
String bName = bean.getSimpleJavaName();
names.add(bName);
@@ -623,7 +620,7 @@
String yName = name.substring(xNameAsString.length()+1);
IStatus status = JavaConventions.validateJavaTypeName(yName,
CompilerOptions.VERSION_1_6, CompilerOptions.VERSION_1_6);
if (status.getSeverity() != IStatus.ERROR) {
- ITextSourceReference reference = bean.getNameLocation();
+ ITextSourceReference reference = bean.getNameLocation(true);
if(reference==null) {
reference = CDIUtil.getNamedDeclaration(bean);
}
@@ -1071,7 +1068,7 @@
ITextSourceReference decoratorDeclaration = decorator.getDecoratorAnnotation();
if(decoratorDeclaration == null) {
//for custom implementations
- decoratorDeclaration = decorator.getNameLocation();
+ decoratorDeclaration = decorator.getNameLocation(true);
}
addError(CDIValidationMessages.DISPOSER_IN_DECORATOR,
CDIPreferences.DISPOSER_IN_INTERCEPTOR_OR_DECORATOR, decoratorDeclaration, bean
.getResource(), DISPOSER_IN_DECORATOR_ID);
@@ -1089,7 +1086,7 @@
ITextSourceReference interceptorDeclaration =
interceptor.getInterceptorAnnotation();
if(interceptorDeclaration == null) {
//for custom implementations
- interceptorDeclaration = interceptor.getNameLocation();
+ interceptorDeclaration = interceptor.getNameLocation(true);
}
addError(CDIValidationMessages.DISPOSER_IN_INTERCEPTOR,
CDIPreferences.DISPOSER_IN_INTERCEPTOR_OR_DECORATOR, interceptorDeclaration, bean
.getResource(), DISPOSER_IN_INTERCEPTOR_ID);
@@ -1922,7 +1919,7 @@
}
if(declaration == null) {
//for custom implementations
- declaration = interceptor.getNameLocation();
+ declaration = interceptor.getNameLocation(true);
}
addError(CDIValidationMessages.INTERCEPTOR_IS_ALTERNATIVE,
CDIPreferences.INTERCEPTOR_OR_DECORATOR_IS_ALTERNATIVE, declaration, interceptor
.getResource());
@@ -2010,7 +2007,7 @@
}
if(declaration == null) {
//for custom implementations
- declaration = decorator.getNameLocation();
+ declaration = decorator.getNameLocation(true);
}
addError(CDIValidationMessages.DECORATOR_IS_ALTERNATIVE,
CDIPreferences.INTERCEPTOR_OR_DECORATOR_IS_ALTERNATIVE, declaration,
decorator.getResource());
}