Author: akazakov
Date: 2008-05-21 15:44:09 -0400 (Wed, 21 May 2008)
New Revision: 8264
Modified:
branches/jbosstools-2.1.x/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/TypeInfoCollector.java
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-2007 Fixed for branches/jbosstools-2.1.x and
trunk
Modified:
branches/jbosstools-2.1.x/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/TypeInfoCollector.java
===================================================================
---
branches/jbosstools-2.1.x/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/TypeInfoCollector.java 2008-05-21
14:05:20 UTC (rev 8263)
+++
branches/jbosstools-2.1.x/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/TypeInfoCollector.java 2008-05-21
19:44:09 UTC (rev 8264)
@@ -227,8 +227,6 @@
private boolean isDataModel;
private Type fType;
-// TypeInfoCollector typeInfo;
-
protected MemberInfo (
IType sourceType,
String declaringTypeQualifiedName, String name, int modifiers, MemberInfo
parentMember, boolean dataModel, Type type) {
@@ -326,14 +324,12 @@
protected void setDataModel(boolean isDataModel) {
this.isDataModel = isDataModel;
}
-
+
public TypeInfoCollector getTypeCollector() {
// The rev. 7651 results in a deadlock, typeInfo is not stored anymore
// The rev. 7623 results in a deadlock, so, it's rolled back
// >>> Fix for JBIDE-2090
- TypeInfoCollector tic = new TypeInfoCollector(this);
- tic.collectInfo();
- return tic;
+ return new TypeInfoCollector(this);
// <<< Fix for JBIDE-2090
}
@@ -344,7 +340,6 @@
private IType fType;
private TypeInfo superType;
private Map<String, Type> params = new HashMap<String, Type>();
- private boolean initialized = false;
public TypeInfo(IType type, MemberInfo parentMember, boolean dataModel) throws
JavaModelException {
super(type.getDeclaringType(),
@@ -376,26 +371,23 @@
*/
@Override
void initializeParameters() {
- if(!initialized) {
- try {
- MemberInfo parent = getParentMember();
- if(parent!=null && parent instanceof TypeMemberInfo) {
- ITypeParameter[] parameters = fType.getTypeParameters();
- for (int i = 0; i < parameters.length; i++) {
- Type type = parent.getType().getParameter(i);
- if(type!=null) {
- params.put(parameters[i].getElementName(), type);
- }
+ try {
+ MemberInfo parent = getParentMember();
+ if(parent!=null && parent instanceof TypeMemberInfo) {
+ ITypeParameter[] parameters = fType.getTypeParameters();
+ for (int i = 0; i < parameters.length; i++) {
+ Type type = parent.getType().getParameter(i);
+ if(type!=null) {
+ params.put(parameters[i].getElementName(), type);
}
}
- if(superType!=null) {
- superType.initializeParameters(this);
- }
- } catch (JavaModelException e) {
- ModelPlugin.getPluginLog().logError(e);
}
+ if(superType!=null) {
+ superType.initializeParameters(this);
+ }
+ } catch (JavaModelException e) {
+ ModelPlugin.getPluginLog().logError(e);
}
- initialized = true;
}
private void initializeParameters(TypeInfo inheritedType) throws JavaModelException {
@@ -691,6 +683,7 @@
public TypeInfoCollector(MemberInfo member) {
this.fMember = member;
this.fType = member.getMemberType();
+ collectInfo();
}
public IType getType() {
Modified:
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
---
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-05-21
14:05:20 UTC (rev 8263)
+++
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-05-21
19:44:09 UTC (rev 8264)
@@ -525,7 +525,7 @@
List<TypeInfoCollector.MemberInfo> newMembers = new
ArrayList<TypeInfoCollector.MemberInfo>();
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
if (TypeInfoCollector.isNotParameterizedCollection(mbr) ||
TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
@@ -554,7 +554,7 @@
List<TypeInfoCollector.MemberInfo> newMembers = new
ArrayList<TypeInfoCollector.MemberInfo>();
for (TypeInfoCollector.MemberInfo mbr : members) {
if (mbr.getMemberType() == null) continue;
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
if (TypeInfoCollector.isNotParameterizedCollection(mbr) ||
TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
@@ -594,7 +594,7 @@
if (mbr.getMemberType() == null) {
continue;
}
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
if (TypeInfoCollector.isNotParameterizedCollection(mbr) ||
TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
@@ -615,7 +615,7 @@
continue;
}
if (mbr.getMemberType() == null) continue;
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
if (TypeInfoCollector.isNotParameterizedCollection(mbr) ||
TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
@@ -953,7 +953,7 @@
String name = token.getText();
List<TypeInfoCollector.MemberInfo> newMembers = new
ArrayList<TypeInfoCollector.MemberInfo>();
for (TypeInfoCollector.MemberInfo mbr : members) {
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
List<TypeInfoCollector.MemberInfo> properties = infos.getProperties();
for (TypeInfoCollector.MemberInfo property : properties) {
StringBuffer propertyName = new StringBuffer(property.getName());
@@ -976,7 +976,7 @@
}
List<TypeInfoCollector.MemberInfo> newMembers = new
ArrayList<TypeInfoCollector.MemberInfo>();
for (TypeInfoCollector.MemberInfo mbr : members) {
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
List<TypeInfoCollector.MemberInfo> methods = infos.getMethods();
for (TypeInfoCollector.MemberInfo method : methods) {
if (method instanceof TypeInfoCollector.MethodInfo
@@ -995,7 +995,7 @@
// return filtered methods + properties
List<TypeInfoCollector.MemberInfo> javaElementInfosToFilter = new
ArrayList<TypeInfoCollector.MemberInfo>();
for (TypeInfoCollector.MemberInfo mbr : members) {
- TypeInfoCollector infos = SeamExpressionResolver.collectTypeInfo(mbr);
+ TypeInfoCollector infos = mbr.getTypeCollector();
javaElementInfosToFilter.addAll(infos.getMethods());
javaElementInfosToFilter.addAll(infos.getProperties());
}
@@ -1103,5 +1103,4 @@
ELOperandToken lastToken = tokens.get(tokens.size() - 1);
return lastToken.getStart() + lastToken.getLength();
}
-
}
\ No newline at end of file
Modified:
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
===================================================================
---
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2008-05-21
14:05:20 UTC (rev 8263)
+++
branches/jbosstools-2.1.x/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java 2008-05-21
19:44:09 UTC (rev 8264)
@@ -324,8 +324,4 @@
}
return member;
}
-
- public static TypeInfoCollector collectTypeInfo(TypeInfoCollector.MemberInfo member) {
- return member.getTypeCollector();
- }
}
\ No newline at end of file