org.eclipse.cdt.core.dom.ast

## Interface IBinding

All Superinterfaces:
  org.eclipse.core.runtime.IAdaptable

All Known Subinterfaces:
  ICExternalBinding, ICompositeType, ICPPAliasTemplate, ICPPAliasTemplateInstance, ICPPBinding, ICPPClassSpecialization, ICPPClassTemplate, ICPPClassTemplatePartialSpecialization, ICPPClassTemplatePartialSpecializationSpecialization, ICPPClassType, ICPPConstructor, ICPPConstructorSpecialization, ICPPDeferredFunction, ICPPDeferredTemplateInstance, ICPPEnumeration, ICPPEnumerationSpecialization, ICPPField, ICPPFieldTemplate, ICPPFunction, ICPPFunctionInstance, ICPPFunctionSpecialization, ICPPFunctionTemplate, ICPPMember, ICPPMethod, ICPPMethodSpecialization, ICPPNamespace, ICPPNamespaceAlias, ICPPParameter, ICPPPartiallySpecializable, ICPPPartialSpecialization, ICPPSpecialization, ICPPTemplateDefinition, ICPPTemplateInstance, ICPPTemplateNonTypeParameter, ICPPTemplateParameter, ICPPTemplateTemplateParameter, ICPPTemplateTypeParameter, ICPPTypeSpecialization, ICPPUsingDeclaration, ICPPVariable, ICPPVariableInstance, ICPPVariableTemplate, ICPPVariableTemplatePartialSpecialization, IEnumeration, IEnumerator, IField, IFunction, IIndexBinding, IIndexMacro, IIndexMacroContainer, ILabel, IMacroBinding, IParameter, IProblemBinding, ITypedef, IVariable

    public interface IBinding
    extends org.eclipse.core.runtime.IAdaptable

Represents the semantics of a name found in the AST or the index.

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

### Field Summary

Fields
`static IBinding[]` `EMPTY_BINDING_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`ILinkage` `getLinkage()` Returns the linkage the binding belongs to.
`String` `getName()` Returns the unqualified name of the binding as a string.
`char[]` `getNameCharArray()` Returns the unqualified name of the binding as an array of characters.
`IBinding` `getOwner()` Returns the binding that owns this binding, or `null` if there is no owner.
`IScope` `getScope()` Returns the parent scope for this binding.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Field Detail

#### EMPTY_BINDING_ARRAY

    static final IBinding[] EMPTY_BINDING_ARRAY

### Method Detail

#### getName

    String getName()

Returns the unqualified name of the binding as a string.

#### getNameCharArray

    char[] getNameCharArray()

Returns the unqualified name of the binding as an array of characters.

#### getLinkage

    ILinkage getLinkage()

Returns the linkage the binding belongs to. C++-declarations declared as extern "C" will still return c++-linkage.

#### getOwner

    IBinding getOwner()

Returns the binding that owns this binding, or `null` if there is no owner.

The owner is determined as follows:
`ICPPUsingDeclaration`: The owner depends on where the declaration is found, within a function or method, a class-type, a namespace or on global scope.
`ICPPTemplateParameter`: The owner is the `ICPPTemplateDefinition`.
`IEnumerator`: The owner is the `IEnumeration`, independent of whether they are scoped or not.
For all other bindings: The owner depends on where the binding can be defined (it could be declared elsewhere).

Possible owners are:
`IFunction`: for parameters, local types, variables, enumerators, labels and using declarations;
Closure represented by `ICPPClassType`: for lambda expression parameters;
`ICPPClassType`: for class-, struct- and union-members, even if the composite type is anonymous; also for enumerators and using declarations;
`ICompositeType`: for struct- and union-members, even if the composite type is anonymous; also for anonymous structs or unions found within another struct;
`ICPPNamespace`: for global types, functions, variables, enumerators, namespaces and using declarations;
`IEnumeration`: for enumerators.
`null`: for types, functions, variables, namespaces and using declarations;

Since:
  5.1

#### getScope

    IScope getScope()
             throws DOMException

Returns the parent scope for this binding. A binding may have declarations in multiple scopes, this method returns the scope where the binding would potentially be defined.

Throws:
  `DOMException`