@Override ASTNode clone0(AST target) { TypeMethodReference result = new TypeMethodReference(target); result.setSourceRange(getStartPosition(), getLength()); result.setType((Type) ASTNode.copySubtree(target, getType())); result.typeArguments().addAll(ASTNode.copySubtrees(target, typeArguments())); result.setName((SimpleName) getName().clone(target)); return result; }
@Override void accept0(ASTVisitor visitor) { boolean visitChildren = visitor.visit(this); if (visitChildren) { // visit children in normal left to right reading order acceptChild(visitor, getType()); acceptChildren(visitor, this.typeArguments); acceptChild(visitor, getName()); } visitor.endVisit(this); }
final ASTNode internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child) { if (property == NAME_PROPERTY) { if (get) { return getName(); } else { setName((SimpleName) child); return null; } } if (property == TYPE_PROPERTY) { if (get) { return getType(); } else { setType((Type) child); return null; } } // allow default implementation to flag the error return super.internalGetSetChildProperty(property, get, child); }
@Override public boolean visit(TypeMethodReference node) { node.getType().accept(this); visitReferenceTypeArguments(node.typeArguments()); node.getName().accept(this); return false; }
result = creationReference; } else if (lhs instanceof TypeReference) { TypeMethodReference typeMethodReference = new TypeMethodReference(this.ast); typeMethodReference.setType(convertType((TypeReference) lhs)); typeMethodReference.setName(name); typeArguments = typeMethodReference.typeArguments(); result = typeMethodReference; } else if (lhs instanceof SuperReference) {
replacement= typeMethodReference; typeMethodReference.setName((SimpleName) rewrite.createCopyTarget(superMethodInvocation.getName())); importRewrite= StubUtility.createImportRewrite(context.getASTRoot(), true); ITypeBinding invocationTypeBinding= ASTNodes.getInvocationType(superMethodInvocation, methodBinding, superQualifier); typeMethodReference.setType(importRewrite.addImport(invocationTypeBinding.getTypeDeclaration(), ast)); typeMethodReference.typeArguments().addAll(getCopiedTypeArguments(rewrite, superMethodInvocation.typeArguments())); } else { SuperMethodReference superMethodReference= ast.newSuperMethodReference(); replacement= typeMethodReference; typeMethodReference.setName((SimpleName) rewrite.createCopyTarget(methodInvocation.getName())); importRewrite= StubUtility.createImportRewrite(context.getASTRoot(), true); ITypeBinding invocationTypeBinding= ASTNodes.getInvocationType(methodInvocation, methodBinding, invocationQualifier); typeMethodReference.setType(importRewrite.addImport(invocationTypeBinding, ast)); typeMethodReference.typeArguments().addAll(getCopiedTypeArguments(rewrite, methodInvocation.typeArguments()));
@Override public boolean visit(TypeMethodReference node) { handleTypeArguments(node.typeArguments()); return true; }
private static SimpleName getMethodInvocationName(MethodReference methodReference) { SimpleName name = null; if (methodReference instanceof ExpressionMethodReference) { name = ((ExpressionMethodReference) methodReference).getName(); } else if (methodReference instanceof TypeMethodReference) { name = ((TypeMethodReference) methodReference).getName(); } else if (methodReference instanceof SuperMethodReference) { name = ((SuperMethodReference) methodReference).getName(); } return name; }
@Override public boolean visit(TypeMethodReference node) { doVisitNode(node.getType()); doVisitChildren(node.typeArguments()); return false; }
private void replaceByTypeReference(final LambdaExpression node, final MethodInvocation mi) { final ASTBuilder b = ctx.getASTBuilder(); final TypeNameDecider typeNameDecider = new TypeNameDecider(mi); final TypeMethodReference typeMethodRef = b.typeMethodRef(); typeMethodRef.setType(b.toType(getCalledType(mi).getErasure(), typeNameDecider)); typeMethodRef.setName(b.copy(mi.getName())); ctx.getRefactorings().replace(node, typeMethodRef); }
expr = (Expression) rewrite.createCopyTarget(expressionMethodReference.getExpression()); } else if (methodReference instanceof TypeMethodReference) { Type type = ((TypeMethodReference) methodReference).getType(); ITypeBinding typeBinding = type.resolveBinding(); if (typeBinding != null) {
/** * Creates an unparented type method reference node owned by this AST. * By default, the type and method name are unspecified (but legal), * and there are no type arguments. * * @return a new unparented type method reference node * @exception UnsupportedOperationException if this operation is used in a JLS2, JLS3 or JLS4 AST * @since 3.10 */ public TypeMethodReference newTypeMethodReference() { TypeMethodReference result = new TypeMethodReference(this); return result; }
public boolean visit(TypeMethodReference node) { node.getType().accept(this); visitReferenceTypeArguments(node.typeArguments()); node.getName().accept(this); return false; }
final ASTNode internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child) { if (property == NAME_PROPERTY) { if (get) { return getName(); } else { setName((SimpleName) child); return null; } } if (property == TYPE_PROPERTY) { if (get) { return getType(); } else { setType((Type) child); return null; } } // allow default implementation to flag the error return super.internalGetSetChildProperty(property, get, child); }
result = creationReference; } else if (lhs instanceof TypeReference) { TypeMethodReference typeMethodReference = new TypeMethodReference(this.ast); typeMethodReference.setType(convertType((TypeReference) lhs)); typeMethodReference.setName(name); typeArguments = typeMethodReference.typeArguments(); result = typeMethodReference; } else if (lhs instanceof SuperReference) {
replacement= typeMethodReference; typeMethodReference.setName((SimpleName) rewrite.createCopyTarget(superMethodInvocation.getName())); importRewrite= StubUtility.createImportRewrite(context.getASTRoot(), true); ITypeBinding invocationTypeBinding= ASTNodes.getInvocationType(superMethodInvocation, methodBinding, superQualifier); typeMethodReference.setType(importRewrite.addImport(invocationTypeBinding.getTypeDeclaration(), ast)); typeMethodReference.typeArguments().addAll(getCopiedTypeArguments(rewrite, superMethodInvocation.typeArguments())); } else { SuperMethodReference superMethodReference= ast.newSuperMethodReference(); replacement= typeMethodReference; typeMethodReference.setName((SimpleName) rewrite.createCopyTarget(methodInvocation.getName())); importRewrite= StubUtility.createImportRewrite(context.getASTRoot(), true); ITypeBinding invocationTypeBinding= ASTNodes.getInvocationType(methodInvocation, methodBinding, invocationQualifier); invocationTypeBinding=StubUtility2Core.replaceWildcardsAndCaptures(invocationTypeBinding); ImportRewriteContext importRewriteContext=new ContextSensitiveImportRewriteContext(lambda, importRewrite); typeMethodReference.setType(importRewrite.addImport(invocationTypeBinding, ast, importRewriteContext, TypeLocation.OTHER)); typeMethodReference.typeArguments().addAll(getCopiedTypeArguments(rewrite, methodInvocation.typeArguments()));
@Override public boolean visit(TypeMethodReference node) { handleTypeArguments(node.typeArguments()); return true; }
private static SimpleName getMethodInvocationName(MethodReference methodReference) { SimpleName name= null; if (methodReference instanceof ExpressionMethodReference) { name= ((ExpressionMethodReference) methodReference).getName(); } else if (methodReference instanceof TypeMethodReference) { name= ((TypeMethodReference) methodReference).getName(); } else if (methodReference instanceof SuperMethodReference) { name= ((SuperMethodReference) methodReference).getName(); } return name; }