Author: scabanovich
Date: 2011-03-29 20:31:25 -0400 (Tue, 29 Mar 2011)
New Revision: 30131
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/ProducerMethod.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java
Log:
JBIDE-3120
https://issues.jboss.org/browse/JBIDE-3120
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-03-29
22:32:06 UTC (rev 30130)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerField.java 2011-03-30
00:31:25 UTC (rev 30131)
@@ -29,6 +29,7 @@
import org.jboss.tools.cdi.core.IStereotype;
import org.jboss.tools.cdi.core.IStereotypeDeclaration;
import org.jboss.tools.cdi.core.ITypeDeclaration;
+import org.jboss.tools.cdi.core.extension.feature.IBeanNameFeature;
import org.jboss.tools.common.model.project.ext.impl.ValueInfo;
import org.jboss.tools.common.text.ITextSourceReference;
@@ -93,6 +94,14 @@
}
public String getName() {
+ Set<IBeanNameFeature> fs = getExtensionManager().getBeanNameFeature();
+ if(fs != null) for (IBeanNameFeature f: fs) {
+ String result = f.computeBeanName(this);
+ if(result != null) {
+ return result;
+ }
+ }
+
AnnotationDeclaration named = findNamedAnnotation();
if(named == null) return null;
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-03-29
22:32:06 UTC (rev 30130)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/ProducerMethod.java 2011-03-30
00:31:25 UTC (rev 30131)
@@ -29,10 +29,12 @@
import org.jboss.tools.cdi.core.IStereotype;
import org.jboss.tools.cdi.core.IStereotypeDeclaration;
import org.jboss.tools.cdi.core.ITypeDeclaration;
+import org.jboss.tools.cdi.core.extension.feature.IBeanNameFeature;
import org.jboss.tools.cdi.internal.core.impl.definition.MethodDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.ParameterDefinition;
import org.jboss.tools.common.model.project.ext.impl.ValueInfo;
import org.jboss.tools.common.text.ITextSourceReference;
+import org.jboss.tools.common.util.BeanUtil;
/**
*
@@ -120,6 +122,15 @@
if(specialized != null) {
return specialized.getName();
}
+
+ Set<IBeanNameFeature> fs = getExtensionManager().getBeanNameFeature();
+ if(fs != null) for (IBeanNameFeature f: fs) {
+ String result = f.computeBeanName(this);
+ if(result != null) {
+ return result;
+ }
+ }
+
AnnotationDeclaration named = findNamedAnnotation();
if(named == null) return null;
@@ -129,10 +140,8 @@
try {
IMemberValuePair[] vs = a.getMemberValuePairs();
if(vs == null || vs.length == 0) {
- if(name.startsWith("get") && name.length() > 3) {
- return name.substring(3, 4).toLowerCase() + name.substring(4);
- } else if(name.startsWith("is") && name.length() > 2) {
- return name.substring(2, 3).toLowerCase() + name.substring(3);
+ if(BeanUtil.isGetter(getMethod())) {
+ return BeanUtil.getPropertyName(name);
}
} else {
Object value = vs[0].getValue();
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java 2011-03-29
22:32:06 UTC (rev 30130)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/PackageDefinition.java 2011-03-30
00:31:25 UTC (rev 30131)
@@ -15,6 +15,7 @@
import org.eclipse.jdt.core.IPackageDeclaration;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
+import org.jboss.tools.common.util.EclipseJavaUtil;
/**
*
@@ -31,6 +32,7 @@
}
public void setPackage(IPackageDeclaration pkg, DefinitionContext context) {
+ qualifiedName = pkg.getElementName();
IType contextType = null;
ICompilationUnit u = null;
if(pkg.getParent() instanceof ICompilationUnit) {
@@ -51,4 +53,35 @@
}
}
+ public String resolveType(String typeName) {
+ String result = typeName;
+ IPackageDeclaration pkg = (IPackageDeclaration)member;
+ IType contextType = null;
+ ICompilationUnit u = null;
+ if(pkg.getParent() instanceof ICompilationUnit) {
+ try {
+ u = ((ICompilationUnit)pkg.getParent()).getWorkingCopy(new NullProgressMonitor());
+ contextType = u.createType("class A {}", null, false, new
NullProgressMonitor());
+ } catch (JavaModelException e) {
+
+ }
+ }
+
+ if(contextType != null) {
+ result = EclipseJavaUtil.resolveType(contextType, typeName);
+ }
+
+ if (u != null) {
+ try {
+ u.discardWorkingCopy();
+ } catch (JavaModelException e) {
+
+ }
+ }
+
+ return result == null ? typeName : result;
+ }
+
+
+
}