/* * @see ASTVisitor#visit(QualifiedName) */ @Override public boolean visit(QualifiedName node) { node.getQualifier().accept(this); this.fBuffer.append("."); // $NON-NLS-1$ node.getName().accept(this); return false; }
/** * Replaces (in place) a QualifiedName node with an equivalent FieldAccess node. This is helpful * when a mutation needs to replace the qualifier with a node that has Expression type but not * Name type. CAUTION: It is strongly recommended that this method be used within a "visit", and * not a "endVisit" because it will rewrite all QualifiedNode ancestors. */ public static FieldAccess convertToFieldAccess(QualifiedName node) { TreeNode parent = node.getParent(); if (parent instanceof QualifiedName) { FieldAccess newParent = convertToFieldAccess((QualifiedName) parent); Expression expr = newParent.getExpression(); assert expr instanceof QualifiedName; node = (QualifiedName) expr; } IVariableBinding variableBinding = getVariableBinding(node); assert variableBinding != null : "node must be a variable"; FieldAccess newNode = new FieldAccess(variableBinding, remove(node.getQualifier())); node.replaceWith(newNode); return newNode; }