[jbosstools-commits] JBoss Tools SVN: r7039 - in trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core: scanner/java and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 20 08:46:17 EDT 2008


Author: scabanovich
Date: 2008-03-20 08:46:17 -0400 (Thu, 20 Mar 2008)
New Revision: 7039

Removed:
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
Modified:
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/java/JavaScanner.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java
   trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidatorManager.java
Log:
JBIDE-1750 TypeInfoCollector moved to common plugin.

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -28,6 +28,7 @@
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextViewer;
+import org.jboss.tools.common.model.util.TypeInfoCollector;
 import org.jboss.tools.seam.core.ISeamComponent;
 import org.jboss.tools.seam.core.ISeamContextVariable;
 import org.jboss.tools.seam.core.ISeamProject;

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamExpressionResolver.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -16,6 +16,7 @@
 import java.util.Set;
 
 import org.eclipse.jdt.core.IMember;
+import org.jboss.tools.common.model.util.TypeInfoCollector;
 import org.jboss.tools.seam.core.BijectedAttributeType;
 import org.jboss.tools.seam.core.IBijectedAttribute;
 import org.jboss.tools.seam.core.ISeamComponent;

Deleted: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/TypeInfoCollector.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -1,942 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- *     Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.seam.internal.core.el;
-
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.Signature;
-import org.jboss.tools.common.model.util.EclipseJavaUtil;
-import org.jboss.tools.seam.core.SeamCorePlugin;
-
-/**
- * This class helps to collect information of java elements used in Seam EL.
- * @author Viktor Rubezhny, Alexey Kazakov
- */
-public class TypeInfoCollector {
-	IType fType;
-	MemberInfo fMember;
-	List<MethodInfo> fMethods;
-	List<FieldInfo> fFields;
-
-	public static class Type {
-		private String fName;
-		private String fQualifiedName;
-		private Type[] fParameters;
-		private IType fSource;
-		private String fSignature;
-		private boolean fIsArray;
-		private Type fTypeOfArrayElement;
-		private String fQualifiedTypeNameOfArrayElement;
-
-		private Type() {
-		}
-
-		public static Type valueOf(String name) {
-			Type instance = new Type(); 
-			instance.setName(name);
-			instance.setParameters(new Type[0]);
-			return instance;
-		}
-
-		public Type(String signature, IType source) {
-			String erasureSignature = Signature.getTypeErasure(signature);
-			String typeOfArraySiganture = Signature.getElementType(erasureSignature);
-			fName = String.valueOf(Signature.toString(erasureSignature));
-			if(!erasureSignature.equals(typeOfArraySiganture)) {
-				// this is an array
-				fIsArray = true;
-				fTypeOfArrayElement = new Type(typeOfArraySiganture, source);
-			}
-			String[] signaturesOfParametersOfType = Signature.getTypeArguments(signature);
-			fParameters = new Type[signaturesOfParametersOfType.length];
-			for (int i = 0; i < signaturesOfParametersOfType.length; i++) {
-				fParameters[i] = new Type(signaturesOfParametersOfType[i], source);
-			}
-			fSource = source;
-		}
-
-		public void initializeParameters(Map<String, Type> parameters) {
-			Type type = parameters.get(fName);
-			if(type!=null) {
-				fName = type.getName();
-				fParameters = type.getParameters();
-				fSource = type.getSource();
-				fIsArray = type.isArray();
-				fTypeOfArrayElement = type.getTypeOfArrayElement();
-			}
-			for (int i = 0; i < fParameters.length; i++) {
-				fParameters[i].initializeParameters(parameters);
-			}
-		}
-
-		public Type getParameter(int index) {
-			if(fParameters.length>index) {
-				return fParameters[index];
-			}
-			return null;
-		}
-
-		public String getQualifiedTypeNameOfArrayElement() {
-			if(fQualifiedTypeNameOfArrayElement==null && fSource!=null) {
-				fQualifiedTypeNameOfArrayElement = EclipseJavaUtil.resolveType(fSource, fTypeOfArrayElement.getName());
-			}
-			return fQualifiedTypeNameOfArrayElement;
-		}
-
-		public String getQualifiedName() {
-			if(fQualifiedName == null && fSource!=null) {
-				fQualifiedName = EclipseJavaUtil.resolveType(fSource, fName);
-			}
-			return fQualifiedName;
-		}
-
-		public boolean isArray() {
-			return fIsArray;
-		}
-
-		public void setArray(boolean array) {
-			fIsArray = array;
-		}
-
-		public Type getTypeOfArrayElement() {
-			return fTypeOfArrayElement;
-		}
-
-		public void setTypeOfArrayElement(Type typeOfArrayElement) {
-			fTypeOfArrayElement = typeOfArrayElement;
-		}
-
-		public String getName() {
-			return fName;
-		}
-
-		public void setName(String name) {
-			fName = name;
-		}
-
-		public Type[] getParameters() {
-			return fParameters;
-		}
-
-		public void setParameters(Type[] parameters) {
-			this.fParameters = parameters;
-		}
-
-		public IType getSource() {
-			return fSource;
-		}
-
-		public void setSource(IType source) {
-			this.fSource = source;
-		}
-
-		public String getSignature() {
-			return fSignature;
-		}
-
-		public void setSignature(String signature) {
-			this.fSignature = signature;
-		}
-	}
-
-	public abstract static class MemberInfo {
-		private String fDeclaringTypeQualifiedName; 
-		private String fName;
-		private int fModifiers;
-		private IType fSourceType;
-		private MemberInfo fParentMember;
-		private String[] fParametersNamesOfDeclaringType;
-		private IType fMemberType;
-		private boolean isDataModel;
-		private Type fType;
-		
-		TypeInfoCollector typeInfo;
-
-		protected MemberInfo (
-			IType sourceType,
-			String declaringTypeQualifiedName, String name, int modifiers, MemberInfo parentMember, boolean dataModel, Type type) {
-			setSourceType(sourceType);
-			setDeclaringTypeQualifiedName(declaringTypeQualifiedName);
-			setName(name);
-			setModifiers(modifiers);
-			setParentMember(parentMember);
-			setDataModel(dataModel);
-			setType(type);
-		}
-
-		protected void initializeParametersOfDeclaringType() {
-			if(fParametersNamesOfDeclaringType!=null && fParametersNamesOfDeclaringType.length>0 && getParentMember()!=null) {
-				Map<String, Type> parametersOfDeclaringType = new HashMap<String, Type>();
-				for (int i = 0; i < fParametersNamesOfDeclaringType.length; i++) {
-					String parameterName = getParameterNameFromType(fParametersNamesOfDeclaringType[i]);
-					Type paramType = getParentMember().getType().getParameter(i);
-					if(paramType!=null) {
-						parametersOfDeclaringType.put(parameterName, paramType);
-					}
-				}
-				getType().initializeParameters(parametersOfDeclaringType);
-			}
-		}
-
-		protected void setType(Type type) {
-			fType = type;
-		}
-
-		public Type getType() {
-			return fType;
-		}
-
-		public void setSourceType(IType sourceType) {
-			fSourceType = sourceType;
-		}
-
-		public IType getSourceType() {
-			return fSourceType;
-		}
-
-		protected void setName (String name) {
-			this.fName = name;
-		}
-
-		public String getName() {
-			return fName;
-		}
-
-		protected void setDeclaringTypeQualifiedName(String declaringTypeQualifiedName) {
-			this.fDeclaringTypeQualifiedName = declaringTypeQualifiedName;
-		}
-
-		public String getDeclaringTypeQualifiedName() {
-			return fDeclaringTypeQualifiedName;
-		}
-
-		protected void setModifiers (int modifiers) {
-			this.fModifiers = modifiers;
-		}
-
-		public int getModifiers() {
-			return fModifiers;
-		}
-
-		public boolean isPublic() {
-			return Modifier.isPublic(fModifiers);
-		}
-
-		public boolean isStatic() {
-			return Modifier.isStatic(fModifiers);
-		}
-
-		public boolean isJavaLangObject() {
-			return "java.lang.Object".equals(getDeclaringTypeQualifiedName());
-		}
-
-		public MemberInfo getParentMember() {
-			return fParentMember;
-		}
-
-		void setParentMember(MemberInfo parentMember) {
-			fParentMember = parentMember;
-		}
-
-		public String[] getParametersNamesOfDeclaringType() {
-			return fParametersNamesOfDeclaringType;
-		}
-
-		void setParametersNamesOfDeclaringType(
-				String[] parametersNamesOfDeclaringType) {
-			fParametersNamesOfDeclaringType = parametersNamesOfDeclaringType;
-		}
-
-		public IType getMemberType() {
-			if(fMemberType==null) {
-				initializeParametersOfDeclaringType();
-				try {
-					if(isDataModel() && getType().isArray()) {
-						fMemberType = getSourceType().getJavaProject().findType(getType().getQualifiedTypeNameOfArrayElement());
-					} else {
-						fMemberType = getSourceType().getJavaProject().findType(getType().getQualifiedName());
-					}
-				} catch (JavaModelException e) {
-					SeamCorePlugin.getPluginLog().logError(e);
-				}
-			}
-			return fMemberType;
-		}
-
-		public boolean isDataModel() {
-			return isDataModel;
-		}
-
-		void setDataModel(boolean isDataModel) {
-			this.isDataModel = isDataModel;
-		}
-		
-		public TypeInfoCollector getTypeCollector() {
-			if(typeInfo == null) {
-				typeInfo = new TypeInfoCollector(this);
-				typeInfo.collectInfo();
-			}
-			return typeInfo;
-		}
-
-		abstract public IJavaElement getJavaElement();
-	}
-
-	public static class TypeInfo extends MemberInfo {
-		private IType fType;
-
-		public TypeInfo(IType type, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
-			super(type.getDeclaringType(), (type.getDeclaringType() == null ? null : type.getDeclaringType().getFullyQualifiedName()), type.getFullyQualifiedName(), type.getFlags(), parentMember, dataModel, Type.valueOf(type.getFullyQualifiedName()));
-			this.fType = type;
-		}
-
-		@Override
-		public IType getMemberType() {
-			return fType;
-		}
-
-		@Override
-		public IJavaElement getJavaElement() {
-			return fType;
-		}
-	}
-
-	public static class FieldInfo extends MemberInfo {
-		private IJavaElement fJavaElement;
-
-		public FieldInfo(IField field, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
-			super(field.getDeclaringType(),
-					(field.getDeclaringType() == null ? null : field.getDeclaringType().getFullyQualifiedName()),
-					field.getElementName(),
-					field.getFlags(),
-					parentMember,
-					dataModel,
-					new Type(field.getTypeSignature(),
-					field.getDeclaringType()));
-
-			setParametersNamesOfDeclaringType(getTypeErasureFromSignatureArray(field.getDeclaringType().getTypeParameterSignatures()));
-		}
-
-		public IJavaElement getJavaElement () {
-			if(fJavaElement == null) {
-				try {
-					IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
-					fJavaElement = (declType == null ? null : declType.getField(getName()));
-				} catch (JavaModelException e) {
-					SeamCorePlugin.getPluginLog().logError(e);
-				}
-			}
-			return fJavaElement;
-		}
-	}
-
-	public static class MethodInfo extends MemberInfo {
-		private String[] fParameterTypeNames;
-		private String[] fParameterTypeQualifiedNames;
-		private String[] fParameterNames;
-		private IJavaElement fJavaElement;
-
-		public MethodInfo(IType sourceType, String declaringTypeQualifiedName, String name,
-				int modifiers, String[] parameterTypeQualifiedNames, 
-				String[] parameterNames,
-				String returnTypeQualifiedName,
-				MemberInfo parentMember,
-				boolean dataModel) {
-			super(sourceType, declaringTypeQualifiedName, name, modifiers, parentMember, dataModel, Type.valueOf(name));
-			setParameterTypeNames(parameterTypeQualifiedNames);
-			setParameterNames(parameterNames);
-		}
-
-		public MethodInfo(IMethod method, MemberInfo parentMember, boolean dataModel) throws JavaModelException {
-			super(method.getDeclaringType(),
-					(method.getDeclaringType() == null ? null : method.getDeclaringType().getFullyQualifiedName()),
-					method.getElementName(),
-					method.getFlags(),
-					parentMember,
-					dataModel,
-					new Type(method.getReturnType(),
-					method.getDeclaringType()));
-
-			setParameterNames(method.getParameterNames());
-			setParameterTypeNames(resolveSignatures(method.getDeclaringType(), method.getParameterTypes()));
-			setParametersNamesOfDeclaringType(getTypeErasureFromSignatureArray(method.getDeclaringType().getTypeParameterSignatures()));
-		}
-
-		protected void setParameterTypeNames(String[] parameterTypeNames) {
-			fParameterTypeNames = (parameterTypeNames == null ?
-					new String[0] : parameterTypeNames); 
-		}
-
-		public String[] getParameterTypeQualifiedNames() {
-			if(fParameterTypeQualifiedNames==null) {
-				fParameterTypeQualifiedNames = new String[fParameterTypeNames.length];
-				for (int i = 0; i < fParameterTypeQualifiedNames.length; i++) {
-					fParameterTypeQualifiedNames[i] = EclipseJavaUtil.resolveType(getSourceType(), fParameterTypeNames[i]);
-				}
-			}
-			return fParameterTypeQualifiedNames; 
-		} 
-
-		public String[] getParameterTypeNames() {
-			return fParameterTypeNames;
-		} 
-
-		protected void setParameterNames(String[] parameterNames) {
-			fParameterNames = (parameterNames == null ?
-					new String[0] : parameterNames); 
-		}
-
-		public String[] getParameterNames() {
-			return fParameterNames; 
-		}
-
-		public int getNumberOfParameters() {
-			return (getParameterNames() == null ? 0 : getParameterNames().length); 
-		}
-
-		public IType getReturnType() {
-			return getMemberType();
-		}
-
-		public boolean isConstructor () {
-			return getDeclaringTypeQualifiedName().equals(getName());
-		}
-
-		public boolean isGetter() {
-			return (getName().startsWith("get") && !getName().equals("get")) || getName().startsWith("is");
-		}
-
-		public boolean isSetter() {
-			return (getName().startsWith("set") && !getName().equals("set"));
-		}
-
-		@Override
-		public IJavaElement getJavaElement () {
-			if(fJavaElement == null) {
-				try {
-					IType declType = getSourceType().getJavaProject().findType(getDeclaringTypeQualifiedName());
-	
-					IMethod[] allMethods = declType.getMethods();
-	
-					// filter methods by name
-					List<IMethod> methods = new ArrayList<IMethod>();
-					for (int i = 0; allMethods != null && i < allMethods.length; i++) {
-						if (allMethods[i].getElementName().equals(getName())) {
-							methods.add(allMethods[i]);
-						}
-					}
-					if (!methods.isEmpty()) {
-						if (methods.size() == 1) {
-							fJavaElement = methods.get(0);
-						} else {
-							// filter methods by number of parameters
-							List<IMethod> filteredMethods = new ArrayList<IMethod>();
-							for (IMethod method : methods) {
-								if (method.getNumberOfParameters() == getNumberOfParameters()) {
-									filteredMethods.add(method);
-								}
-							}
-							if (!filteredMethods.isEmpty()) {
-								if (filteredMethods.size() == 1) {
-									fJavaElement = filteredMethods.get(0);
-								} else {
-									methods = filteredMethods;
-
-									// filter methods by parameter types
-									for(IMethod method : methods) {
-										String[] methodParameterTypes = 
-											resolveSignatures(method.getDeclaringType(), 
-													method.getParameterTypes());
-										String[] parameterTypes = getParameterTypeQualifiedNames();
-
-										boolean equal = true;
-										for (int i = 0; parameterTypes != null && i < parameterTypes.length; i++) {
-											// simple types must be equal, but complex types may not 
-											if (!parameterTypes[i].equals(methodParameterTypes[i])) {
-												// sure - it's Complex Type
-												if (! (parameterTypes[i].indexOf('.') != -1) 
-														&& (methodParameterTypes[i].indexOf('.') == -1)) {
-													equal = false;
-													break;
-												}
-											}
-										}
-										if (equal) {
-											fJavaElement = method;
-										}
-									}
-								}
-							}
-						}
-					}
-				} catch (JavaModelException e) {
-					SeamCorePlugin.getPluginLog().logError(e);
-				}
-			}
-			return fJavaElement;
-		}
-	}
-
-	public TypeInfoCollector(MemberInfo member) {
-		this.fMember = member;
-		this.fType = member.getMemberType();
-	}
-
-	public IType getType() {
-		return this.fType;
-	}
-
-	public void collectInfo() {
-		if (fMethods == null) {
-			fMethods = new ArrayList<MethodInfo>();
-		} else {
-			fMethods.clear();
-		}
-
-		if (fFields == null) {
-			fFields = new ArrayList<FieldInfo>();
-		} else {
-			fFields.clear();
-		}
-
-		if (fType == null) 
-			return;
-		try {
-			IType binType = fType;
-			while (binType != null) {
-				IMethod[] binMethods = binType.getMethods();
-				for (int i = 0; binMethods != null && i < binMethods.length; i++) {
-					if (binMethods[i].isConstructor()) continue;
-					fMethods.add(new MethodInfo(binMethods[i], fMember, false));
-				}
-				binType = getSuperclass(binType);
-			}
-
-			// !!!!!!!
-			// This inserts here methods "public int size()" and "public boolean isEmpty()" for javax.faces.model.DataModel 
-			// as requested by Gavin in JBIDE-1256
-			// !!!!!!! 
-			if(isDataModelObject(fType)) {
-				addInfoForDataModelObject();				
-			}
-			// This inserts here methods "public int getRowCount()" for @DataModel variables.
-			if(fMember.isDataModel) {
-				addInfoForDataModelVariable();
-			}
-		} catch (JavaModelException e) {
-			SeamCorePlugin.getPluginLog().logError(e);
-		}
-	}
-
-	boolean isDataModelObject(IType type) throws JavaModelException {
-		return isInstanceofType(type, "javax.faces.model.DataModel");
-	}
-
-	public static boolean isResourceBundle(IType type) {
-		try {
-			return isInstanceofType(type, "java.util.ResourceBundle");
-		} catch (JavaModelException e) {
-			return false;
-		}
-	}
-
-	public static boolean isNotParameterizedCollection(TypeInfoCollector.MemberInfo mbr) {
-		try {
-			if(mbr.getType().getParameters()!=null && mbr.getType().getParameters().length>0) {
-				return false;
-			}
-			IType type = mbr.getMemberType();
-			if(type!=null) {
-				return isInstanceofType(type, "java.util.Map") || isInstanceofType(type, "java.util.Collection");
-			}
-			return false;
-		} catch (JavaModelException e) {
-			return false;
-		}
-	}
-	
-	public static class SuperTypeInfo {
-		IType type;
-		Set<String> names = new HashSet<String>();
-		IType[] superTypes = new IType[0];
-		
-		SuperTypeInfo(IType type) throws JavaModelException {
-			this.type = type;
-			superTypesCache.put(type, this);
-			ITypeHierarchy typeHierarchy = type.newSupertypeHierarchy(new NullProgressMonitor());
-			superTypes = typeHierarchy == null ? null : typeHierarchy.getAllSupertypes(type);
-			if(superTypes != null) for (int i = 0; i < superTypes.length; i++) {
-				names.add(superTypes[i].getFullyQualifiedName());
-			}
-			if(superTypes == null) superTypes = new IType[0];
-		}
-		
-		public Set<String> getNames() {
-			return names;
-		}
-		
-		public IType[] getSuperTypes() {
-			return superTypes;
-		}
-	}
-	
-	static Map<IType, SuperTypeInfo> superTypesCache = new HashMap<IType, SuperTypeInfo>();
-	
-	public static SuperTypeInfo getSuperTypes(IType type) throws JavaModelException {
-		if(type == null) return null;
-		SuperTypeInfo ts = superTypesCache.get(type);
-		if(ts == null) {
-			ts = new SuperTypeInfo(type);
-		}
-		return ts;
-	}
-	
-	public static boolean isInstanceofType(IType type, String qualifiedTypeName) throws JavaModelException {
-		if (qualifiedTypeName == null || type == null) return false;
-		boolean isInstanceofType = qualifiedTypeName.equals(type.getFullyQualifiedName());
-		if (!isInstanceofType) {
-			SuperTypeInfo ts = getSuperTypes(type);
-			if(ts != null && ts.getNames().contains(qualifiedTypeName)) {
-				return true;
-			}
-			return false;
-		}
-		return true;
-	}
-
-	void addInfoForDataModelVariable() {
-		fMethods.add(new MethodInfo(fType,
-				fType.getFullyQualifiedName(),
-				"getRowCount", Modifier.PUBLIC, 
-				new String[0],
-				new String[0],
-				"int",
-				fMember,
-				false));
-	}
-
-	void addInfoForDataModelObject() {
-		fMethods.add(new MethodInfo(fType,
-				fType.getFullyQualifiedName(),
-				"size", Modifier.PUBLIC, 
-				new String[0],
-				new String[0],
-				"int",
-				fMember,
-				false));
-		fMethods.add(new MethodInfo(fType,
-				fType.getFullyQualifiedName(),
-				"isEmpty", Modifier.PUBLIC, 
-				new String[0],
-				new String[0],
-				"boolean",
-				fMember,
-				false));
-	}
-
-	private static IType getSuperclass(IType type) throws JavaModelException {
-		String superclassName = type.getSuperclassName();
-		if(superclassName!=null) {
-			String fullySuperclassName = EclipseJavaUtil.resolveType(type, superclassName);
-			if(fullySuperclassName!=null&&!fullySuperclassName.equals("java.lang.Object")) { //$NON-NLS-1$
-				if(fullySuperclassName.equals(type.getFullyQualifiedName())) {
-					//FIX JBIDE-1642
-					return null;
-				}
-				IType superType = type.getJavaProject().findType(fullySuperclassName);
-				return superType;
-			}
-		}
-		return null;
-	}
-
-	public MethodInfo[] findMethodInfos(IMethod iMethod) {
-		List<MethodInfo> methods = new ArrayList<MethodInfo>();
-
-		// filter methods by name
-		for (MethodInfo info : fMethods) {
-			if (info.getName().equals(iMethod.getElementName())) {
-				methods.add(info);
-			}
-		}
-		if (methods.isEmpty())
-			return new MethodInfo[0];
-
-		EclipseJavaUtil.getMemberTypeAsString(iMethod);
-
-		if (methods.size() == 1)
-			return methods.toArray(new MethodInfo[0]);
-
-		// filter methods by number of parameters
-		List<MethodInfo> filteredMethods = new ArrayList<MethodInfo>();
-		for (MethodInfo method : methods) {
-			if (method.getNumberOfParameters() == iMethod.getNumberOfParameters())
-				filteredMethods.add(method);
-		}
-		if (filteredMethods.isEmpty())
-			return new MethodInfo[0];
-		if (filteredMethods.size() == 1)
-			return filteredMethods.toArray(new MethodInfo[0]);
-
-		methods = filteredMethods;
-
-		// filter methods by parameter types
-		filteredMethods = new ArrayList<MethodInfo>(); 
-		for(MethodInfo method : methods) {
-			String[] methodParameterTypes = 
-				resolveSignatures(iMethod.getDeclaringType(), 
-						iMethod.getParameterTypes());
-			String[] parameterTypes = method.getParameterTypeQualifiedNames();
-
-			boolean equal = true;
-			for (int i = 0; equal && parameterTypes != null && i < parameterTypes.length; i++) {
-				// simple types must be equal, but complex types may not 
-				if (!parameterTypes[i].equals(methodParameterTypes[i])) {
-					// sure - it's Complex Type
-					if ((parameterTypes[i].indexOf('.') != -1) 
-							&& (methodParameterTypes[i].indexOf('.') == -1)) {
-						equal = false;
-					}
-				}
-			}
-			if (equal) {
-				filteredMethods.add(method);
-			}
-		}
-		return filteredMethods.toArray(new MethodInfo[0]);
-	}
-
-	/**
-	 * Returns the methods for the type specified  
-	 * 
-	 * @return
-	 */
-	public List<MemberInfo> getMethods() {
-		List<MemberInfo> methods = new ArrayList<MemberInfo>();
-		for (MethodInfo info : fMethods) {
-			if (info.isPublic() && !info.isConstructor() 
-					&& !info.isStatic() && !info.isJavaLangObject()
-					&& !info.isGetter() && !info.isSetter())
-				methods.add(info);
-		}
-		return methods;
-	}
-
-	/**
-	 * Returns the method presentation strings for the type specified  
-	 * 
-	 * @param type
-	 * @return
-	 */
-	public Set<String> getMethodPresentations() {
-		Set<String> methods = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
-		List<MemberInfo> mthds = getMethods();
-		for (MemberInfo info : mthds) {
-			if (!(info instanceof MethodInfo))
-				continue;
-
-			MethodInfo method = (MethodInfo)info;
-
-			StringBuffer name = new StringBuffer(method.getName());
-
-			// Add method as 'foo'
-			methods.add(name.toString());
-
-			// Add method as 'foo(param1,param2)'
-			name.append('(');
-			String[] mParams = method.getParameterNames();
-			for (int j = 0; mParams != null && j < mParams.length; j++) {
-				if (j > 0) name.append(", "); //$NON-NLS-1$
-				name.append(mParams[j]);
-			}
-			name.append(')');
-
-			methods.add(name.toString());
-		}
-		return methods;
-	}
-
-	/**
-	 * Returns the properties for the type specified  
-	 * 
-	 * @return
-	 */
-	public List<MemberInfo> getProperties() {
-		List<MemberInfo> properties = new ArrayList<MemberInfo>();
-		for (MethodInfo info : fMethods) {
-			if (info.isPublic() && !info.isConstructor() 
-					&& !info.isStatic() && !info.isJavaLangObject()
-					&& (info.isGetter() || info.isSetter()))
-				properties.add(info);
-		}
-
-		/*
-		 * The following code was excluded due to the following issue: 
-		 * 
-		 * http://jira.jboss.com/jira/browse/JBIDE-1203#action_12385823
-		 * 
-		 * 
-		for (FieldInfo info : fFields) {
-			if (info.isPublic() 
-					&& !info.isStatic() && !info.isJavaLangObject())
-				properties.add(info);
-		}
-		*/
-
-		return properties;
-	}
-
-	/**
-	 * Returns the property presentation strings for the type specified  
-	 * 
-	 * @return
-	 */
-	public Set<String> getPropertyPresentations() {
-		return getPropertyPresentations(null);
-	}
-
-	/**
-	 * Returns the property presentation strings for the type specified  
-	 * 
-	 * @param unpairedGettersOrSetters - map of unpaired getters or setters of type's properties. 'key' is property name.
-	 * @return
-	 */
-	public Set<String> getPropertyPresentations(Map<String, MethodInfo> unpairedGettersOrSetters) {
-		Set<String> properties = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); 
-		List<MemberInfo> props = getProperties(); 
-		HashMap<String, MethodInfo> getters = new HashMap<String, MethodInfo>();
-		HashMap<String, MethodInfo> setters = new HashMap<String, MethodInfo>();
-		for (MemberInfo info : props) {
-			if (info instanceof MethodInfo) {
-				MethodInfo m = (MethodInfo)info;
-
-				if (m.isGetter() || m.isSetter()) {
-					StringBuffer name = new StringBuffer(m.getName());
-					if(m.getName().startsWith("i")) { //$NON-NLS-1$
-						name.delete(0, 2);
-					} else {
-						name.delete(0, 3);
-					}
-					name.setCharAt(0, Character.toLowerCase(name.charAt(0)));
-					String propertyName = name.toString();
-					if(!properties.contains(propertyName)) {
-						properties.add(propertyName);
-					}
-					if(unpairedGettersOrSetters!=null) {
-						MethodInfo previousGetter = getters.get(propertyName);
-						MethodInfo previousSetter = setters.get(propertyName);
-						if((previousGetter!=null && m.isSetter())||(previousSetter!=null && m.isGetter())) {
-							// We have both Getter and Setter
-							unpairedGettersOrSetters.remove(propertyName);
-						} else if(m.isSetter()) {
-							setters.put(propertyName, m);
-							unpairedGettersOrSetters.put(propertyName, m);
-						} else if(m.isGetter()) {
-							getters.put(propertyName, m);
-							unpairedGettersOrSetters.put(propertyName, m);
-						}
-					}
-				}
-			} else {
-				properties.add(info.getName());
-			}
-		}	
-		return properties;
-	}
-	
-	static Map<IMember, MemberInfo> memberInfoCacheFalse = new HashMap<IMember, MemberInfo>();
-	static Map<IMember, MemberInfo> memberInfoCacheTrue = new HashMap<IMember, MemberInfo>();
-	
-	public static void cleanCache() {
-		memberInfoCacheFalse.clear();
-		memberInfoCacheTrue.clear();
-		superTypesCache.clear();
-	}
-
-	public static MemberInfo createMemberInfo(IMember member, boolean dataModel) {
-		Map<IMember, MemberInfo> cache = dataModel ? memberInfoCacheTrue : memberInfoCacheFalse;
-		MemberInfo result = cache.get(member);
-		if(result != null) return result;
-		try {
-			if (member instanceof IType)
-				result = new TypeInfo((IType)member, null, dataModel);
-			else if (member instanceof IField)
-				result = new FieldInfo((IField)member, null, dataModel);
-			else if (member instanceof IMethod)
-				result = new MethodInfo((IMethod)member, null, dataModel);
-		} catch (JavaModelException e) {
-			SeamCorePlugin.getPluginLog().logError(e);
-		}
-		if(result != null) {
-			cache.put(member, result);
-		}
-
-		return result;
-	}
-
-	public static MemberInfo createMemberInfo(IMember member) {
-		return createMemberInfo(member, false);
-	}
-
-	static String[] resolveSignatures (IType type, String[] signatures) {
-		if (signatures == null || signatures.length == 0) 
-			return new String[0];
-
-		String[] resolvedSignatures = new String[signatures.length];
-		for (int i = 0; i < signatures.length; i++) {
-			resolvedSignatures[i] = EclipseJavaUtil.resolveTypeAsString(type, signatures[i]);
-		}
-		return resolvedSignatures;
-	}
-
-	static String[] convertToStringArray(char[][] names) {
-		if (names == null || names.length == 0) 
-			return new String[0];
-		String[] sNames = new String[names.length];
-		for (int i = 0; i < sNames.length; i++) {
-			sNames[i] = String.valueOf(names[i]);
-		}
-		return sNames;	
-	}
-
-	static String[] getTypeErasureFromSignatureArray(String[] signatures) {
-		if (signatures == null || signatures.length == 0) 
-			return new String[0];
-		String[] result = new String[signatures.length];
-		for (int i = 0; i < signatures.length; i++) {
-			result[i] = Signature.getTypeErasure(signatures[i]);
-		}
-		return result;
-	}
-
-	static String getParameterNameFromType(String typeSignatures) {
-		if(typeSignatures==null) {
-			return null;
-		}
-		return Signature.getTypeVariable(typeSignatures);
-	}
-}
\ No newline at end of file

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/java/JavaScanner.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/java/JavaScanner.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/scanner/java/JavaScanner.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -27,6 +27,7 @@
 import org.eclipse.jdt.core.dom.ASTRequestor;
 import org.eclipse.jdt.core.dom.CompilationUnit;
 import org.eclipse.osgi.util.NLS;
+import org.jboss.tools.common.model.util.EclipseJavaUtil;
 import org.jboss.tools.common.model.util.EclipseResourceUtil;
 import org.jboss.tools.common.util.FileUtil;
 import org.jboss.tools.seam.core.SeamCoreMessages;
@@ -172,18 +173,8 @@
 	}
 	
 	static String getResolvedType(IType type, String n) {
-
-		String[][] rs;
-		try {
-			rs = type.resolveType(n);
-			if(rs != null && rs.length > 0) {
-				return (rs[0][0].length() == 0) ? rs[0][1] : rs[0][0] + "." + rs[0][1]; //$NON-NLS-1$
-			}
-		} catch (JavaModelException e) {
-			// ignore
-		}
-
-		return n;
+		String result = EclipseJavaUtil.resolveType(type, n);
+		return result == null ? n : result;
 	}
 
 }

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -34,6 +34,7 @@
 import org.eclipse.wst.validation.internal.core.ValidationException;
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
 import org.jboss.tools.common.model.util.EclipseResourceUtil;
+import org.jboss.tools.common.model.util.TypeInfoCollector;
 import org.jboss.tools.seam.core.BijectedAttributeType;
 import org.jboss.tools.seam.core.IBijectedAttribute;
 import org.jboss.tools.seam.core.IRole;
@@ -60,7 +61,6 @@
 import org.jboss.tools.seam.internal.core.SeamJavaComponentDeclaration;
 import org.jboss.tools.seam.internal.core.SeamProject;
 import org.jboss.tools.seam.internal.core.SeamTextSourceReference;
-import org.jboss.tools.seam.internal.core.el.TypeInfoCollector;
 
 /**
  * Validator for Java and XML files.

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -41,6 +41,7 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.jboss.tools.common.model.util.TypeInfoCollector;
 import org.jboss.tools.common.util.FileUtil;
 import org.jboss.tools.seam.core.ISeamContextVariable;
 import org.jboss.tools.seam.core.ISeamProject;
@@ -54,7 +55,6 @@
 import org.jboss.tools.seam.internal.core.el.SeamELCompletionEngine;
 import org.jboss.tools.seam.internal.core.el.SeamELStringTokenizer;
 import org.jboss.tools.seam.internal.core.el.SeamELTokenizer;
-import org.jboss.tools.seam.internal.core.el.TypeInfoCollector;
 import org.jboss.tools.seam.internal.core.el.ElVarSearcher.Var;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;

Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidatorManager.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidatorManager.java	2008-03-20 12:46:00 UTC (rev 7038)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidatorManager.java	2008-03-20 12:46:17 UTC (rev 7039)
@@ -19,9 +19,9 @@
 import org.eclipse.wst.validation.internal.provisional.core.IReporter;
 import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
 import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
+import org.jboss.tools.common.model.util.TypeInfoCollector;
 import org.jboss.tools.seam.core.ISeamProject;
 import org.jboss.tools.seam.internal.core.SeamProject;
-import org.jboss.tools.seam.internal.core.el.TypeInfoCollector;
 
 /**
  * This Manager invokes all dependent seam validators that should be invoked in one job.




More information about the jbosstools-commits mailing list