Interface ICElement

All Superinterfaces:
org.eclipse.core.runtime.IAdaptable
All Known Subinterfaces:
IArchive, IArchiveContainer, IAsmLabel, IBinary, IBinaryContainer, IBinaryElement, IBinaryFunction, IBinaryModule, IBinaryVariable, ICContainer, ICModel, IContributedCElement, ICProject, IDeclaration, IEnumeration, IEnumerator, IField, IFunction, IFunctionDeclaration, IFunctionTemplate, IFunctionTemplateDeclaration, IInclude, IIncludeReference, ILibraryReference, IMacro, IMember, IMethod, IMethodDeclaration, IMethodTemplate, IMethodTemplateDeclaration, INamespace, IPragma, ISourceRoot, IStructure, IStructureDeclaration, IStructureTemplate, IStructureTemplateDeclaration, ITranslationUnit, ITypeDef, IUsing, IVariable, IVariableDeclaration, IWorkingCopy

public interface ICElement extends org.eclipse.core.runtime.IAdaptable
Common protocol for all elements provided by the C model.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • EMPTY_ARRAY

      static final ICElement[] EMPTY_ARRAY
      Since:
      5.6
    • C_MODEL

      static final int C_MODEL
      Constant representing a C Root workspace (IWorkspaceRoot object). A C element with this type can be safely cast to ICModel.
      See Also:
    • C_PROJECT

      static final int C_PROJECT
      Constant representing a C project (IProject object). A C element with this type can be safely cast to ICProject.
      See Also:
    • C_CCONTAINER

      static final int C_CCONTAINER
      Constant representing a folder (ICContainer object). A C element with this type can be safely cast to ICContainer.
      See Also:
    • C_BINARY

      static final int C_BINARY
      See Also:
    • C_ARCHIVE

      static final int C_ARCHIVE
      See Also:
    • C_VCONTAINER

      static final int C_VCONTAINER
      Virtual container serving as a place holder.
      See Also:
    • C_UNIT

      static final int C_UNIT
      Constant representing a C/C++ children of a Translation Unit
      See Also:
    • C_NAMESPACE

      static final int C_NAMESPACE
      Namespace.
      See Also:
    • C_USING

      static final int C_USING
      Using.
      See Also:
    • C_ENUMERATION

      static final int C_ENUMERATION
      Enumeration.
      See Also:
    • C_CLASS_DECLARATION

      static final int C_CLASS_DECLARATION
      Declaration of a class without the definition. class C;
      See Also:
    • C_CLASS

      static final int C_CLASS
      Constant representing a class structure.
      See Also:
    • C_STRUCT_DECLARATION

      static final int C_STRUCT_DECLARATION
      Declaration of a structure without the definition. struct C;
      See Also:
    • C_STRUCT

      static final int C_STRUCT
      Constant representing a struct structure.
      See Also:
    • C_UNION_DECLARATION

      static final int C_UNION_DECLARATION
      Declaration of a union without the definition. struct C;
      See Also:
    • C_UNION

      static final int C_UNION
      Constant representing a union structure.
      See Also:
    • C_METHOD

      static final int C_METHOD
      A method definition part of a structure(class, struct, union).
      See Also:
    • C_METHOD_DECLARATION

      static final int C_METHOD_DECLARATION
      A method declaration part of a structure(class, struct, union).
      See Also:
    • C_FIELD

      static final int C_FIELD
      A Field definition part of a structure(class, struct, union).
      See Also:
    • C_FUNCTION_DECLARATION

      static final int C_FUNCTION_DECLARATION
      a C/C++ function prototype.
      See Also:
    • C_FUNCTION

      static final int C_FUNCTION
      a C/C++ function definition.
      See Also:
    • C_INCLUDE

      static final int C_INCLUDE
      Preprocessor #include directive.
      See Also:
    • C_VARIABLE

      static final int C_VARIABLE
      Global variable.
      See Also:
    • C_VARIABLE_DECLARATION

      static final int C_VARIABLE_DECLARATION
      variable Declaration.
      See Also:
    • C_VARIABLE_LOCAL

      static final int C_VARIABLE_LOCAL
      Local Variable.
      See Also:
    • C_MACRO

      static final int C_MACRO
      A preprocessor macro.
      See Also:
    • C_TYPEDEF

      static final int C_TYPEDEF
      a Typedef.
      See Also:
    • C_ENUMERATOR

      static final int C_ENUMERATOR
      Enumerator.
      See Also:
    • C_TEMPLATE_CLASS_DECLARATION

      static final int C_TEMPLATE_CLASS_DECLARATION
      C++ template class declaration without a definition.
      See Also:
    • C_TEMPLATE_CLASS

      static final int C_TEMPLATE_CLASS
      C++ template class with definition.
      See Also:
    • C_TEMPLATE_STRUCT_DECLARATION

      static final int C_TEMPLATE_STRUCT_DECLARATION
      C++ template struct.
      See Also:
    • C_TEMPLATE_STRUCT

      static final int C_TEMPLATE_STRUCT
      C++ template struct.
      See Also:
    • C_TEMPLATE_UNION_DECLARATION

      static final int C_TEMPLATE_UNION_DECLARATION
      C++ template union.
      See Also:
    • C_TEMPLATE_UNION

      static final int C_TEMPLATE_UNION
      C++ template union.
      See Also:
    • C_TEMPLATE_FUNCTION_DECLARATION

      static final int C_TEMPLATE_FUNCTION_DECLARATION
      C++ template function declaration.
      See Also:
    • C_TEMPLATE_FUNCTION

      static final int C_TEMPLATE_FUNCTION
      C++ template function.
      See Also:
    • C_TEMPLATE_METHOD_DECLARATION

      static final int C_TEMPLATE_METHOD_DECLARATION
      C++ template method.
      See Also:
    • C_TEMPLATE_METHOD

      static final int C_TEMPLATE_METHOD
      C++ template method.
      See Also:
    • C_TEMPLATE_VARIABLE

      static final int C_TEMPLATE_VARIABLE
      C++ template variable.
      See Also:
    • C_UNKNOWN_DECLARATION

      static final int C_UNKNOWN_DECLARATION
      An unknown ICElement. Mainly used to determine what elements are not yet implemented. i.e. the new DOM Parser supports open declaration on labels, while the old parser did not
      See Also:
    • ASM_LABEL

      static final int ASM_LABEL
      Assembly label.
      Since:
      5.0
      See Also:
    • C_PRAGMA

      static final int C_PRAGMA
      A pragma statement.
      Since:
      7.3
      See Also:
    • C_CLASS_CTOR

      @Deprecated static final int C_CLASS_CTOR
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • C_CLASS_DTOR

      @Deprecated static final int C_CLASS_DTOR
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • C_STORAGE_STATIC

      @Deprecated static final int C_STORAGE_STATIC
      Deprecated.
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • C_STORAGE_EXTERN

      @Deprecated static final int C_STORAGE_EXTERN
      Deprecated.
      not used anymore
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • CPP_PRIVATE

      @Deprecated static final int CPP_PRIVATE
      Deprecated.
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • CPP_PUBLIC

      @Deprecated static final int CPP_PUBLIC
      Deprecated.
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • CPP_PROTECTED

      @Deprecated static final int CPP_PROTECTED
      Deprecated.
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
    • CPP_FRIEND

      @Deprecated static final int CPP_FRIEND
      See Also:
      Restriction:
      This field is not intended to be referenced by clients.
  • Method Details

    • exists

      boolean exists()
      Returns whether this C element exists in the model.
      Returns:
      true if this element exists in the C model
    • getAncestor

      ICElement getAncestor(int ancestorType)
      Returns the first ancestor of this C element that has the given type. Returns null if no such an ancestor can be found. This is a handle-only method.
      Parameters:
      ancestorType - the given type
      Returns:
      the first ancestor of this C element that has the given type, null if no such an ancestor can be found
      Since:
      2.0
    • getElementName

      String getElementName()
      Returns the name of this element.
      Returns:
      the element name
    • getElementType

      int getElementType()
      Returns this element's kind encoded as an integer. This is a handle-only method.
      Returns:
      the kind of element; one of the constants declared in ICElement
    • getCModel

      ICModel getCModel()
      Returns the C model.
      Returns:
      the C model
    • getCProject

      ICProject getCProject()
      Returns the C project this element is contained in, or null if this element is not contained in any C project
      Returns:
      the containing C project, or null if this element is not contained in a C project
    • getParent

      ICElement getParent()
      Returns the element directly containing this element, or null if this element has no parent.
      Returns:
      the parent element, or null if this element has no parent
    • getPath

      org.eclipse.core.runtime.IPath getPath()
      Returns the path to the innermost resource enclosing this element. If this element is not included in an external archive, the path returned is the full, absolute path to the underlying resource, relative to the workbench. If this element is included in an external archive, the path returned is the absolute path to the archive in the file system. This is a handle-only method.
    • getLocationURI

      URI getLocationURI()
      Returns an absolute URI corresponding to the innermost file enclosing this element.
      Returns:
      the URI corresponding to the location
      Since:
      5.0
    • getUnderlyingResource

      org.eclipse.core.resources.IResource getUnderlyingResource()
      Returns the underlying resource that contains this element, or null if this element is not contained in a resource.
      Returns:
      the underlying resource, or null if none
    • getResource

      org.eclipse.core.resources.IResource getResource()
      Returns the corresponding resource for this element, or null if this element does not have a corresponding resource.
      Returns:
      the corresponding resource, or null if none
    • isReadOnly

      boolean isReadOnly()
      Returns whether this C element is read-only. An element is read-only if its structure cannot be modified by the C model.
      Returns:
      true if this element is read-only
    • isStructureKnown

      boolean isStructureKnown() throws CModelException
      Returns whether the structure of this element is known. For example, for a translation unit that could not be parsed, false is returned. If the structure of an element is unknown, navigations will return reasonable defaults. For example, getChildren will return an empty collection.

      Note: This does not imply anything about consistency with the underlying resource/buffer contents.

      Returns:
      true if the structure of this element is known
      Throws:
      CModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource
    • accept

      void accept(ICElementVisitor visitor) throws org.eclipse.core.runtime.CoreException
      Accept a visitor and walk the ICElement tree with it.
      Parameters:
      visitor -
      Throws:
      CModelException
      org.eclipse.core.runtime.CoreException
    • getHandleIdentifier

      String getHandleIdentifier()
      Returns a string representation of this element handle. The format of the string is not specified; however, the identifier is stable across workspace sessions, and can be used to recreate this handle via the CoreModel.create(String) method.

      Some element types, like binaries, do not support handle identifiers and return null.

      Returns:
      the string handle identifier, or null if the element type is not supported
      Since:
      5.0
      See Also: