org.eclipse.cdt.core.dom.ast

## Interface IASTName

All Superinterfaces:
  IASTNode, IName

All Known Subinterfaces:
  IASTImplicitDestructorName, IASTImplicitName, ICPPASTConversionName, ICPPASTName, ICPPASTOperatorName, ICPPASTQualifiedName, ICPPASTTemplateId, ICPPASTTemplateName

    public interface IASTName
    extends IASTNode, IName

This class represents a name in the program that represents a semantic object in the program.

Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

### Field Summary

Fields
`static IASTName[]` `EMPTY_NAME_ARRAY` Constant sentinel.

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`EMPTY_NODE_ARRAY`

### Fields inherited from interface org.eclipse.cdt.core.dom.IName

`EMPTY_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`IASTName` `copy()` Returns a mutable copy of the tree rooted at this node.
`IASTName` `copy(IASTNode.CopyStyle style)` Returns a mutable copy of the tree rooted at this node.
`IBinding` `getBinding()` Returns the semantic object attached to this name.
`IASTCompletionContext` `getCompletionContext()` Returns the completion context for this name.
`IASTImageLocation` `getImageLocation()` Returns the image location for this name or `null` if the information is not available.
`IASTName` `getLastName()` For convenience this method returns the last name of a qualified name or `this` if this is not a qualified name.
`ILinkage` `getLinkage()` Determines the current linkage in which the name has to be resolved.
`char[]` `getLookupKey()` Returns the key for looking up this name in a scope.
`IBinding` `getPreBinding()` Returns the intermediate representation of the binding, if already available.
`int` `getRoleOfName(boolean allowResolution)` Returns the role of this name.
`boolean` `isQualified()` Returns whether this name is qualified, i.e.
`IBinding` `resolveBinding()` Resolves the semantic object this name is referring to.
`IBinding` `resolvePreBinding()` Resolves to an intermediate representation of the binding.
`void` `setBinding(IBinding binding)` Sets the semantic object for this name to be the given binding
`char[]` `toCharArray()` Returns the name including qualification and template arguments.
`String` `toString()` Same as `toCharArray()`.

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent`

### Methods inherited from interface org.eclipse.cdt.core.dom.IName

`getFileLocation, getSimpleID, isDeclaration, isDefinition, isReference`

### Field Detail

#### EMPTY_NAME_ARRAY

    static final IASTName[] EMPTY_NAME_ARRAY

Constant sentinel.

### Method Detail

#### toCharArray

    char[] toCharArray()

Returns the name including qualification and template arguments.

Specified by:
  `toCharArray` in interface `IName`

#### toString

    String toString()

Same as `toCharArray()`.

Overrides:
  `toString` in class `Object`
Since:
  5.1

#### getBinding

    IBinding getBinding()

Returns the semantic object attached to this name. May be null if this name has not yet been semantically resolved (@see resolveBinding)

Returns:
  `IBinding` if it has been resolved, otherwise null

#### resolveBinding

    IBinding resolveBinding()

Resolves the semantic object this name is referring to.

Returns:
  `IBinding` binding

#### getRoleOfName

    int getRoleOfName(boolean allowResolution)

Returns the role of this name. If the name needs to be resolved to determine that and `allowResolution` is set to `false`, then `IASTNameOwner.r_unclear` is returned.

Parameters:
  `allowResolution` - whether or not resolving the name is allowed.
Returns:
  `IASTNameOwner.r_definition`, `IASTNameOwner.r_declaration`, `IASTNameOwner.r_reference`, `IASTNameOwner.r_unclear`.
Since:
  5.0

#### getCompletionContext

    IASTCompletionContext getCompletionContext()

Returns the completion context for this name.

Returns:
  `IASTCompletionContext` the context for completion

#### getLinkage

    ILinkage getLinkage()

Determines the current linkage in which the name has to be resolved.

#### getImageLocation

    IASTImageLocation getImageLocation()

Returns the image location for this name or `null` if the information is not available.

An image location can be computed when the name is either found directly in the code, is (part of) an argument to a macro expansion or is (part of) a macro definition found in the source code.

The image location is `null`, when the name consists of multiple tokens (qualified names) and the tokens are not found side by side in the code, or if the name is the result of a token-paste operation or the name is found in the definition of a built-in macro.

Since:
  5.0

#### getLastName

    IASTName getLastName()

For convenience this method returns the last name of a qualified name or `this` if this is not a qualified name.

Since:
  5.1

#### copy

    IASTName copy()

Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Calling this method is equivalent to `copy(CopyStyle.withoutLocations)`.

Specified by:
  `copy` in interface `IASTNode`
Since:
  5.1

#### copy

    IASTName copy(IASTNode.CopyStyle style)

Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Specified by:
  `copy` in interface `IASTNode`
Parameters:
  `style` - `IASTNode.CopyStyle` create a copy with or without locations. Please see `IASTNode.CopyStyle` for restrictions on copies with Locations.
Since:
  5.3

#### setBinding

    void setBinding(IBinding binding)

Sets the semantic object for this name to be the given binding

Restriction:
  This method is not intended to be referenced by clients.

#### getLookupKey

    char[] getLookupKey()

Returns the key for looking up this name in a scope.

Restriction:
  This method is not intended to be referenced by clients.

#### getPreBinding

    IBinding getPreBinding()

Returns the intermediate representation of the binding, if already available.

Restriction:
  This method is not intended to be referenced by clients.

#### resolvePreBinding

    IBinding resolvePreBinding()

Resolves to an intermediate representation of the binding.

Restriction:
  This method is not intended to be referenced by clients.

#### isQualified

    boolean isQualified()

Returns whether this name is qualified, i.e. whether it is preceded by a scope operator.

Since:
  5.4