protected void initialize(ITypeBinding binding, ITypeParameter javaTypeParameter) { Assert.isTrue(binding.isTypeVariable()); Assert.isNotNull(javaTypeParameter); fJavaTypeParameter= javaTypeParameter; super.initialize(binding); }
@Override public final boolean visit(final SimpleName node) { Assert.isNotNull(node); final ITypeBinding binding= node.resolveTypeBinding(); if (binding != null && binding.isTypeVariable() && !fBindings.containsKey(binding.getKey())) { fBindings.put(binding.getKey(), binding); fFound.add(binding); } return true; }
protected void initialize(ITypeBinding binding, ITypeParameter javaTypeParameter) { Assert.isTrue(binding.isTypeVariable()); Assert.isNotNull(javaTypeParameter); fJavaTypeParameter= javaTypeParameter; super.initialize(binding); }
protected void initialize(ITypeBinding binding, ITypeParameter javaTypeParameter) { Assert.isTrue(binding.isTypeVariable()); Assert.isNotNull(javaTypeParameter); fJavaTypeParameter= javaTypeParameter; super.initialize(binding); }
public final boolean visit(final SimpleName node) { Assert.isNotNull(node); final ITypeBinding binding= node.resolveTypeBinding(); if (binding != null && binding.isTypeVariable() && !fBindings.containsKey(binding.getKey())) { fBindings.put(binding.getKey(), binding); fFound.add(binding); } return true; }
/** * @param parentCv the parent constraint variable * @param typeVariable the type variable for this constraint * @param declarationTypeVariableIndex */ public CollectionElementVariable2(ConstraintVariable2 parentCv, ITypeBinding typeVariable, int declarationTypeVariableIndex) { super(null); fParentCv= parentCv; if (! typeVariable.isTypeVariable()) throw new IllegalArgumentException(typeVariable.toString()); fTypeVariableKey= typeVariable.getKey(); fDeclarationTypeVariableIndex= declarationTypeVariableIndex; }
@Override public final boolean visit(final SimpleName node) { Assert.isNotNull(node); final ITypeBinding binding= node.resolveTypeBinding(); if (binding != null && binding.isTypeVariable() && !fBindings.containsKey(binding.getKey())) { fBindings.put(binding.getKey(), binding); fFound.add(binding); } return true; }
public CollectionElementVariable2 getElementVariable(ConstraintVariable2 constraintVariable, ITypeBinding typeVariable) { Assert.isTrue(typeVariable.isTypeVariable()); // includes null check HashMap<String, CollectionElementVariable2> typeVarToElementVars= getIndexedCollectionElements(constraintVariable); if (typeVarToElementVars == null) return null; return typeVarToElementVars.get(typeVariable.getKey()); }
public CollectionElementVariable2 getElementVariable(ConstraintVariable2 constraintVariable, ITypeBinding typeVariable) { Assert.isTrue(typeVariable.isTypeVariable()); // includes null check HashMap<String, CollectionElementVariable2> typeVarToElementVars= getIndexedCollectionElements(constraintVariable); if (typeVarToElementVars == null) return null; return typeVarToElementVars.get(typeVariable.getKey()); }
public CollectionElementVariable2 getElementVariable(ConstraintVariable2 constraintVariable, ITypeBinding typeVariable) { Assert.isTrue(typeVariable.isTypeVariable()); // includes null check HashMap typeVarToElementVars= (HashMap) constraintVariable.getData(INDEXED_COLLECTION_ELEMENTS); if (typeVarToElementVars == null) return null; return (CollectionElementVariable2) typeVarToElementVars.get(typeVariable.getKey()); }
private String annotatedRenaming(ITypeBinding type) { if (type.isTypeVariable()) return null; final ASTNode node = findDeclaringNode(type); AbstractTypeDeclaration typeDeclaration = node instanceof AbstractTypeDeclaration ? (AbstractTypeDeclaration) node: null; return (typeDeclaration != null && isAnnotatedWith(typeDeclaration, SharpenAnnotations.SHARPEN_RENAME)) ? annotatedRenaming(typeDeclaration) : null; }
/** * If a type variable, return the bound (getTypeVariablesBase()). If a parameterized type, return the generic type. */ public static ITypeBinding getErasedType(ITypeBinding returnType, AST ast) { if (returnType.isTypeVariable() || returnType.isCapture()) return getTypesVariablesBase(returnType, ast); return returnType.getTypeDeclaration(); // Things like "Collection<? extends Bla>" are parameterized types... }
public static ITypeBinding getTypesVariablesBase(ITypeBinding returnType, AST ast) { assert returnType.isTypeVariable() || returnType.isCapture(); if (returnType.getTypeBounds().length > 0) return returnType.getTypeBounds()[0]; // TODO: why is there more than one bound? else return ast.resolveWellKnownType("java.lang.Object"); }
@Override public boolean consumes(SemanticToken token) { // 1: match types in type parameter lists SimpleName name= token.getNode(); ASTNode node= name.getParent(); if (node.getNodeType() != ASTNode.SIMPLE_TYPE && node.getNodeType() != ASTNode.TYPE_PARAMETER) return false; // 2: match generic type variable references IBinding binding= token.getBinding(); return binding instanceof ITypeBinding && ((ITypeBinding) binding).isTypeVariable(); } }
public boolean consumes(SemanticToken token) { // 1: match types in type parameter lists SimpleName name= token.getNode(); ASTNode node= name.getParent(); if (node.getNodeType() != ASTNode.SIMPLE_TYPE && node.getNodeType() != ASTNode.TYPE_PARAMETER) return false; // 2: match generic type variable references IBinding binding= token.getBinding(); return binding instanceof ITypeBinding && ((ITypeBinding) binding).isTypeVariable(); } }
@Override public boolean consumes(SemanticToken token) { // 1: match types in type parameter lists SimpleName name = token.getNode(); ASTNode node = name.getParent(); if (node.getNodeType() != ASTNode.SIMPLE_TYPE && node.getNodeType() != ASTNode.TYPE_PARAMETER) { return false; } // 2: match generic type variable references IBinding binding = token.getBinding(); return binding instanceof ITypeBinding && ((ITypeBinding) binding).isTypeVariable(); } }
@Override public boolean consumes(SemanticToken token) { // 1: match types in type parameter lists SimpleName name= token.getNode(); ASTNode node= name.getParent(); if (node.getNodeType() != ASTNode.SIMPLE_TYPE && node.getNodeType() != ASTNode.TYPE_PARAMETER) return false; // 2: match generic type variable references IBinding binding= token.getBinding(); return binding instanceof ITypeBinding && ((ITypeBinding) binding).isTypeVariable(); } }
public final boolean visit(final SimpleName node) { final ITypeBinding binding= node.resolveTypeBinding(); if (binding != null && binding.isTypeVariable() && Bindings.equals(binding, fBinding) && node.getIdentifier().equals(fName.getIdentifier())) { if (node != fName) { if (fUpdateReferences) fRewrite.getASTRewrite().set(node, SimpleName.IDENTIFIER_PROPERTY, getNewElementName(), fRewrite.createGroupDescription(RefactoringCoreMessages.RenameTypeParameterRefactoring_update_type_parameter_reference)); } else fRewrite.getASTRewrite().set(node, SimpleName.IDENTIFIER_PROPERTY, getNewElementName(), fRewrite.createGroupDescription(RefactoringCoreMessages.RenameTypeParameterRefactoring_update_type_parameter_declaration)); } return true; }
public static boolean containsTypeVariables(ITypeBinding type) { if (type.isTypeVariable()) return true; if (type.isArray()) return containsTypeVariables(type.getElementType()); if (type.isCapture()) return containsTypeVariables(type.getWildcard()); if (type.isParameterizedType()) return containsTypeVariables(type.getTypeArguments()); if (type.isWildcardType() && type.getBound() != null) return containsTypeVariables(type.getBound()); return false; }
static boolean containsTypeVariables(ITypeBinding type) { if (type.isTypeVariable()) return true; if (type.isArray()) return containsTypeVariables(type.getElementType()); if (type.isCapture()) return containsTypeVariables(type.getWildcard()); if (type.isParameterizedType()) return containsTypeVariables(type.getTypeArguments()); if (type.isWildcardType() && type.getBound() != null) return containsTypeVariables(type.getBound()); return false; }