private static ITypeBinding handleBug84585(ITypeBinding typeBinding) { if (typeBinding == null) return null; else if (typeBinding.isGenericType() && ! typeBinding.isRawType() && ! typeBinding.isParameterizedType()) return null; //see bug 84585 else return typeBinding; }
private static ITypeBinding handleBug84585(ITypeBinding typeBinding) { if (typeBinding == null) return null; else if (typeBinding.isGenericType() && ! typeBinding.isRawType() && ! typeBinding.isParameterizedType()) return null; //see bug 84585 else return typeBinding; }
private static ITypeBinding handleBug84585(ITypeBinding typeBinding) { if (typeBinding == null) return null; else if (typeBinding.isGenericType() && ! typeBinding.isRawType() && ! typeBinding.isParameterizedType()) return null; //see bug 84585 else return typeBinding; }
private static Set<ITypeBinding> getTypeBoundsForSubsignature(ITypeBinding typeParameter) { ITypeBinding[] typeBounds= typeParameter.getTypeBounds(); int count= typeBounds.length; if (count == 0) return Collections.emptySet(); Set<ITypeBinding> result= new HashSet<>(typeBounds.length); for (int i= 0; i < typeBounds.length; i++) { ITypeBinding bound= typeBounds[i]; if ("java.lang.Object".equals(typeBounds[0].getQualifiedName())) //$NON-NLS-1$ continue; else if (containsTypeVariables(bound)) result.add(bound.getErasure()); // try to achieve effect of "rename type variables" else if (bound.isRawType()) result.add(bound.getTypeDeclaration()); else result.add(bound); } return result; }
private static Set getTypeBoundsForSubsignature(ITypeBinding typeParameter) { ITypeBinding[] typeBounds= typeParameter.getTypeBounds(); int count= typeBounds.length; if (count == 0) return Collections.EMPTY_SET; Set result= new HashSet(typeBounds.length); for (int i= 0; i < typeBounds.length; i++) { ITypeBinding bound= typeBounds[i]; if ("java.lang.Object".equals(typeBounds[0].getQualifiedName())) //$NON-NLS-1$ continue; else if (containsTypeVariables(bound)) result.add(bound.getErasure()); // try to achieve effect of "rename type variables" else if (bound.isRawType()) result.add(bound.getTypeDeclaration()); else result.add(bound); } return result; }
public static boolean isAGenericType(ITypeBinding type) { return type.isGenericType() || type.isParameterizedType() || (type.isRawType() && type.getTypeDeclaration().isGenericType()); }
public static boolean isAGenericType(ITypeBinding type) { return type.isGenericType() || type.isParameterizedType() || (type.isRawType() && type.getTypeDeclaration().isGenericType()); }
private boolean areTypeCompatible(ITypeBinding colTypeBinding, ITypeBinding arrayTypeBinding) { if (arrayTypeBinding != null && colTypeBinding != null) { ITypeBinding jucTypeBinding = findImplementedType(colTypeBinding, "java.util.Collection"); if (jucTypeBinding.isRawType()) { return true; } ITypeBinding componentType = arrayTypeBinding.getComponentType(); ITypeBinding colTypeArgument = jucTypeBinding.getTypeArguments()[0]; return componentType.isSubTypeCompatible(colTypeArgument); } return false; }
public static boolean isAGenericType(ITypeBinding type) { return type.isGenericType() || type.isParameterizedType() || (type.isRawType() && type.getTypeDeclaration().isGenericType()); }
protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isRawType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (HierarchyType)environment.create(binding.getTypeDeclaration()); }
@Override protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isRawType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (HierarchyType)environment.create(binding.getTypeDeclaration()); }
@Override protected void initialize(ITypeBinding binding, IType javaElementType) { Assert.isTrue(binding.isRawType()); super.initialize(binding, javaElementType); TypeEnvironment environment= getEnvironment(); fTypeDeclaration= (HierarchyType)environment.create(binding.getTypeDeclaration()); }
private static boolean parameterTypesMatch(ITypeBinding implementedType, boolean isInstanceOf, IMethodBinding methodBinding, String[] parameterTypesQualifiedNames) { if (implementedType != null && !implementedType.isRawType()) { final ITypeBinding erasure = implementedType.getErasure(); if (erasure.isGenericType() || erasure.isParameterizedType()) { return parameterizedTypesMatch(implementedType, erasure, methodBinding); } } return isInstanceOf && concreteTypesMatch(methodBinding.getParameterTypes(), parameterTypesQualifiedNames); }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewQualifiedNameNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newName(fQualifiedTypeName))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newName(fQualifiedTypeName); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
private ASTNode getNewUnqualifiedTypeNode(ITypeBinding[] parameters, Name name) { final AST ast= name.getAST(); boolean raw= false; final ITypeBinding binding= name.resolveTypeBinding(); if (binding != null && binding.isRawType()) raw= true; if (parameters != null && parameters.length > 0 && !raw) { final ParameterizedType type= ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName(fType.getElementName()))); for (int index= 0; index < parameters.length; index++) type.typeArguments().add(ast.newSimpleType(ast.newSimpleName(parameters[index].getName()))); return type; } return ast.newSimpleType(ast.newSimpleName(fType.getElementName())); }
/** * Creates the appropriate ParameterizedType node. Recursion is needed to * handle the nested case (e.g., Vector<Vector<String>>). */ private Type createParameterizedType(AST ast, ITypeBinding typeBinding){ if (typeBinding.isParameterizedType() && !typeBinding.isRawType()){ Type baseType= ast.newSimpleType(ASTNodeFactory.newName(ast, typeBinding.getErasure().getName())); ParameterizedType newType= ast.newParameterizedType(baseType); for (int i=0; i < typeBinding.getTypeArguments().length; i++){ ITypeBinding typeArg= typeBinding.getTypeArguments()[i]; Type argType= createParameterizedType(ast, typeArg); // recursive call newType.typeArguments().add(argType); } return newType; } else { if (!typeBinding.isTypeVariable()){ return ast.newSimpleType(ASTNodeFactory.newName(ast, typeBinding.getErasure().getName())); } else { return ast.newSimpleType(ast.newSimpleName(typeBinding.getName())); } } }