Package org.eclipse.cdt.core.model

## Interface IStructure

All Superinterfaces:
  `org.eclipse.core.runtime.IAdaptable`, `ICElement`, `IDeclaration`, `IInheritance`, `IParent`, `ISourceManipulation`, `ISourceReference`, `IStructureDeclaration`

All Known Subinterfaces:
  `IStructureTemplate`

    public interface IStructure
    extends IInheritance, IParent, IStructureDeclaration

Represent struct(ure), class or union.

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 inherited from interface org.eclipse.cdt.core.model.ICElement

`ASM_LABEL, C_ARCHIVE, C_BINARY, C_CCONTAINER, C_CLASS, C_CLASS_CTOR, C_CLASS_DECLARATION, C_CLASS_DTOR, C_ENUMERATION, C_ENUMERATOR, C_FIELD, C_FUNCTION, C_FUNCTION_DECLARATION, C_INCLUDE, C_MACRO, C_METHOD, C_METHOD_DECLARATION, C_MODEL, C_NAMESPACE, C_PROJECT, C_STORAGE_EXTERN, C_STORAGE_STATIC, C_STRUCT, C_STRUCT_DECLARATION, C_TEMPLATE_CLASS, C_TEMPLATE_CLASS_DECLARATION, C_TEMPLATE_FUNCTION, C_TEMPLATE_FUNCTION_DECLARATION, C_TEMPLATE_METHOD, C_TEMPLATE_METHOD_DECLARATION, C_TEMPLATE_STRUCT, C_TEMPLATE_STRUCT_DECLARATION, C_TEMPLATE_UNION, C_TEMPLATE_UNION_DECLARATION, C_TEMPLATE_VARIABLE, C_TYPEDEF, C_UNION, C_UNION_DECLARATION, C_UNIT, C_UNKNOWN_DECLARATION, C_USING, C_VARIABLE, C_VARIABLE_DECLARATION, C_VARIABLE_LOCAL, C_VCONTAINER, CPP_FRIEND, CPP_PRIVATE, CPP_PROTECTED, CPP_PUBLIC, EMPTY_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`IField` `getField​(String name)` Returns the specific field with the given name within the structure.
`IField[]` `getFields()` Returns the fields of a structure.
`IMethodDeclaration` `getMethod​(String name)` Returns the specific method with the given name within the structure.
`IMethodDeclaration[]` `getMethods()` Returns all methods within the structure.
`boolean` `isAbstract()` Checks if the structure is abstract

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

`getAdapter`

### Methods inherited from interface org.eclipse.cdt.core.model.ICElement

`accept, exists, getAncestor, getCModel, getCProject, getElementName, getElementType, getHandleIdentifier, getLocationURI, getParent, getPath, getResource, getUnderlyingResource, isReadOnly, isStructureKnown`

### Methods inherited from interface org.eclipse.cdt.core.model.IDeclaration

`isConst, isStatic, isVolatile`

### Methods inherited from interface org.eclipse.cdt.core.model.IInheritance

`getSuperClassAccess, getSuperClassesNames`

### Methods inherited from interface org.eclipse.cdt.core.model.IParent

`getChildren, getChildrenOfType, hasChildren`

### Methods inherited from interface org.eclipse.cdt.core.model.ISourceManipulation

`copy, delete, move, rename`

### Methods inherited from interface org.eclipse.cdt.core.model.ISourceReference

`getIndex, getSource, getSourceRange, getTranslationUnit, isActive`

### Methods inherited from interface org.eclipse.cdt.core.model.IStructureDeclaration

`getTypeName, isClass, isStruct, isUnion`

### Method Detail

#### getField

    IField getField​(String name)

Returns the specific field with the given name within the structure.

Parameters:
  `name` - the name of the field
Returns:
  the field with the given name, or `null` if not found

#### getFields

    IField[] getFields()
                throws CModelException

Returns the fields of a structure.

Returns:
  an array of IField elements
Throws:
  `CModelException`

#### getMethod

    IMethodDeclaration getMethod​(String name)

Returns the specific method with the given name within the structure. Returns the first occurrence more than one method has the same name.

Parameters:
  `name` -
Returns:
  IMethodDeclaration

#### getMethods

    IMethodDeclaration[] getMethods()
                             throws CModelException

Returns all methods within the structure.

Returns:
  array of IMethodDeclaration.
Throws:
  `CModelException`

#### isAbstract

    boolean isAbstract()
                throws CModelException

Checks if the structure is abstract

Returns:
  boolean
Throws:
  `CModelException`