All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.org.eclipse.jdt.core.dom.Name Maven / Gradle / Ivy

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2000, 2008 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are 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
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.aspectj.org.eclipse.jdt.core.dom;

/**
 * Abstract base class for all AST nodes that represent names.
 * There are exactly two kinds of name: simple ones
 * (SimpleName) and qualified ones (QualifiedName).
 * 

*

 * Name:
 *     SimpleName
 *     QualifiedName
 * 
*

* * @since 2.0 * @noextend This class is not intended to be subclassed by clients. */ public abstract class Name extends Expression implements IDocElement { /** * Approximate base size of an expression node instance in bytes, * including object header and instance fields. */ static final int BASE_NAME_NODE_SIZE = BASE_NODE_SIZE + 1 * 4; /** * This index represents the position inside a qualified name. */ int index; /** * Creates a new AST node for a name owned by the given AST. *

* N.B. This constructor is package-private. *

* * @param ast the AST that is to own this node */ Name(AST ast) { super(ast); } /** * Returns whether this name is a simple name * (SimpleName). * * @return true if this is a simple name, and * false otherwise */ public final boolean isSimpleName() { return (this instanceof SimpleName); } /** * Returns whether this name is a qualified name * (QualifiedName). * * @return true if this is a qualified name, and * false otherwise */ public final boolean isQualifiedName() { return (this instanceof QualifiedName); } /** * Resolves and returns the binding for the entity referred to by this name. *

* Note that bindings are generally unavailable unless requested when the * AST is being built. *

* * @return the binding, or null if the binding cannot be * resolved */ public final IBinding resolveBinding() { return this.ast.getBindingResolver().resolveName(this); } /** * Returns the standard dot-separated representation of this name. * If the name is a simple name, the result is the name's identifier. * If the name is a qualified name, the result is the name of the qualifier * (as computed by this method) followed by "." followed by the name's * identifier. * * @return the fully qualified name * @since 3.0 */ public final String getFullyQualifiedName() { if (isSimpleName()) { // avoid creating garbage for common case return ((SimpleName) this).getIdentifier(); } else { StringBuffer buffer = new StringBuffer(50); appendName(buffer); return new String(buffer); } } /** * Appends the standard representation of this name to the given string * buffer. * * @param buffer the buffer * @since 3.0 */ abstract void appendName(StringBuffer buffer); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy