Interface IJavaElement

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ANNOTATION
      Constant representing an annotation.
      static int CLASS_FILE
      Constant representing a class file.
      static int COMPILATION_UNIT
      Constant representing a Java compilation unit.
      static int FIELD
      Constant representing a field.
      static int IMPORT_CONTAINER
      Constant representing all import declarations within a compilation unit.
      static int IMPORT_DECLARATION
      Constant representing an import declaration within a compilation unit.
      static int INITIALIZER
      Constant representing a stand-alone instance or class initializer.
      static int JAVA_MODEL
      Constant representing a Java model (workspace level object).
      static int JAVA_MODULE
      Constant represents a module descriptor.
      static int JAVA_PROJECT
      Constant representing a Java project.
      static int LOCAL_VARIABLE
      Constant representing a local variable declaration.
      static int METHOD
      Constant representing a method or constructor.
      static int PACKAGE_DECLARATION
      Constant representing a package declaration within a compilation unit.
      static int PACKAGE_FRAGMENT
      Constant representing a package fragment.
      static int PACKAGE_FRAGMENT_ROOT
      Constant representing a package fragment root.
      static int TYPE
      Constant representing a type (a class or interface).
      static int TYPE_PARAMETER
      Constant representing a type parameter declaration.
    • Field Detail

      • JAVA_MODEL

        static final int JAVA_MODEL
        Constant representing a Java model (workspace level object). A Java element with this type can be safely cast to IJavaModel.
        See Also:
        Constant Field Values
      • JAVA_PROJECT

        static final int JAVA_PROJECT
        Constant representing a Java project. A Java element with this type can be safely cast to IJavaProject.
        See Also:
        Constant Field Values
      • PACKAGE_FRAGMENT_ROOT

        static final int PACKAGE_FRAGMENT_ROOT
        Constant representing a package fragment root. A Java element with this type can be safely cast to IPackageFragmentRoot.
        See Also:
        Constant Field Values
      • PACKAGE_FRAGMENT

        static final int PACKAGE_FRAGMENT
        Constant representing a package fragment. A Java element with this type can be safely cast to IPackageFragment.
        See Also:
        Constant Field Values
      • COMPILATION_UNIT

        static final int COMPILATION_UNIT
        Constant representing a Java compilation unit. A Java element with this type can be safely cast to ICompilationUnit.
        See Also:
        Constant Field Values
      • CLASS_FILE

        static final int CLASS_FILE
        Constant representing a class file. A Java element with this type can be safely cast to IClassFile.
        See Also:
        Constant Field Values
      • TYPE

        static final int TYPE
        Constant representing a type (a class or interface). A Java element with this type can be safely cast to IType.
        See Also:
        Constant Field Values
      • FIELD

        static final int FIELD
        Constant representing a field. A Java element with this type can be safely cast to IField.
        See Also:
        Constant Field Values
      • METHOD

        static final int METHOD
        Constant representing a method or constructor. A Java element with this type can be safely cast to IMethod.
        See Also:
        Constant Field Values
      • INITIALIZER

        static final int INITIALIZER
        Constant representing a stand-alone instance or class initializer. A Java element with this type can be safely cast to IInitializer.
        See Also:
        Constant Field Values
      • PACKAGE_DECLARATION

        static final int PACKAGE_DECLARATION
        Constant representing a package declaration within a compilation unit. A Java element with this type can be safely cast to IPackageDeclaration.
        See Also:
        Constant Field Values
      • IMPORT_CONTAINER

        static final int IMPORT_CONTAINER
        Constant representing all import declarations within a compilation unit. A Java element with this type can be safely cast to IImportContainer.
        See Also:
        Constant Field Values
      • IMPORT_DECLARATION

        static final int IMPORT_DECLARATION
        Constant representing an import declaration within a compilation unit. A Java element with this type can be safely cast to IImportDeclaration.
        See Also:
        Constant Field Values
      • LOCAL_VARIABLE

        static final int LOCAL_VARIABLE
        Constant representing a local variable declaration. A Java element with this type can be safely cast to ILocalVariable.
        Since:
        3.0
        See Also:
        Constant Field Values
      • TYPE_PARAMETER

        static final int TYPE_PARAMETER
        Constant representing a type parameter declaration. A Java element with this type can be safely cast to ITypeParameter.
        Since:
        3.1
        See Also:
        Constant Field Values
      • ANNOTATION

        static final int ANNOTATION
        Constant representing an annotation. A Java element with this type can be safely cast to IAnnotation.
        Since:
        3.4
        See Also:
        Constant Field Values
      • JAVA_MODULE

        static final int JAVA_MODULE
        Constant represents a module descriptor. A Java element with this type can be safely cast to IModuleDescription.
        Since:
        3.14
        See Also:
        Constant Field Values
    • Method Detail

      • exists

        boolean exists()
        Returns whether this Java element exists in the model.

        Java elements are handle objects that may or may not be backed by an actual element. Java elements that are backed by an actual element are said to "exist", and this method returns true. For Java elements that are not working copies, it is always the case that if the element exists, then its parent also exists (provided it has one) and includes the element as one of its children. It is therefore possible to navigated to any existing Java element from the root of the Java model along a chain of existing Java elements. On the other hand, working copies are said to exist until they are destroyed (with IWorkingCopy.destroy). Unlike regular Java elements, a working copy never shows up among the children of its parent element (which may or may not exist).

        Returns:
        true if this element exists in the Java model, and false if this element does not exist
      • getAncestor

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

        String getAttachedJavadoc​(IProgressMonitor monitor)
                           throws JavaModelException

        Returns the Javadoc as HTML source if this element has attached Javadoc, null otherwise.

        This should be used only for binary elements. Source elements will always return null.

        The encoding used to read the Javadoc is the one defined by the content type of the file. If none is defined, then the project's encoding of this Java element is used. If the project's encoding cannot be retrieved, then the platform encoding is used.

        In case the Javadoc doesn't exist for this element, null is returned.

        The HTML is extracted from the attached Javadoc and provided as is. No transformation or validation is done.

        Parameters:
        monitor - the given progress monitor, can be null
        Returns:
        the extracted javadoc from the attached javadoc, null if none
        Throws:
        JavaModelException - if:
        • this element does not exist
        • retrieving the attached javadoc fails (timed-out, invalid URL, ...)
        • the format of the javadoc doesn't match expected standards (different anchors,...)
        Since:
        3.2
        See Also:
        IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME
      • getCorrespondingResource

        IResource getCorrespondingResource()
                                    throws JavaModelException
        Returns the resource that corresponds directly to this element, or null if there is no resource that corresponds to this element.

        For example, the corresponding resource for an ICompilationUnit is its underlying IFile. The corresponding resource for an IPackageFragment that is not contained in an archive is its underlying IFolder. An IPackageFragment contained in an archive has no corresponding resource. Similarly, there are no corresponding resources for IMethods, IFields, etc.

        Returns:
        the corresponding resource, or null if none
        Throws:
        JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource
      • getElementName

        String getElementName()
        Returns the name of this element. This is a handle-only method.
        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 IJavaElement
        See Also:
        IJavaElement
      • 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 JavaCore.create(String) method.
        Returns:
        the string handle identifier
        See Also:
        JavaCore.create(java.lang.String)
      • getJavaModel

        IJavaModel getJavaModel()
        Returns the Java model. This is a handle-only method.
        Returns:
        the Java model
      • getJavaProject

        IJavaProject getJavaProject()
        Returns the Java project this element is contained in, or null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project). This is a handle-only method.
        Returns:
        the containing Java project, or null if this element is not contained in a Java project
      • getOpenable

        IOpenable getOpenable()
        Returns the first openable parent. If this element is openable, the element itself is returned. Returns null if this element doesn't have an openable parent. This is a handle-only method.
        Returns:
        the first openable parent or null if this element doesn't have an openable parent.
        Since:
        2.0
      • getParent

        IJavaElement getParent()
        Returns the element directly containing this element, or null if this element has no parent. This is a handle-only method.
        Returns:
        the parent element, or null if this element has no parent
      • getPath

        IPath getPath()
        Returns the path to the innermost resource enclosing this element. If this element is not included in an external library, the path returned is the full, absolute path to the underlying resource, relative to the workbench. If this element is included in an external library, the path returned is the absolute path to the archive or to the folder in the file system. This is a handle-only method.
        Returns:
        the path to the innermost resource enclosing this element
        Since:
        2.0
      • getPrimaryElement

        IJavaElement getPrimaryElement()
        Returns the primary element (whose compilation unit is the primary compilation unit) this working copy element was created from, or this element if it is a descendant of a primary compilation unit or if it is not a descendant of a working copy (e.g. it is a binary member). The returned element may or may not exist.
        Returns:
        the primary element this working copy element was created from, or this element.
        Since:
        3.0
      • getResource

        IResource getResource()
        Returns the innermost resource enclosing this element. If this element is included in an archive and this archive is not external, this is the underlying resource corresponding to the archive. If this element is included in an external library, null is returned. This is a handle-only method.
        Returns:
        the innermost resource enclosing this element, null if this element is included in an external archive
        Since:
        2.0
      • getSchedulingRule

        ISchedulingRule getSchedulingRule()
        Returns the scheduling rule associated with this Java element. This is a handle-only method.
        Returns:
        the scheduling rule associated with this Java element
        Since:
        3.0
      • getUnderlyingResource

        IResource getUnderlyingResource()
                                 throws JavaModelException
        Returns the smallest 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
        Throws:
        JavaModelException - if this element does not exist or if an exception occurs while accessing its underlying resource
      • isReadOnly

        boolean isReadOnly()
        Returns whether this Java element is read-only. An element is read-only if its structure cannot be modified by the java model.

        Note this is different from IResource.isReadOnly(). For example, .jar files are read-only as the java model doesn't know how to add/remove elements in this file, but the underlying IFile can be writable.

        This is a handle-only method.

        Returns:
        true if this element is read-only
      • isStructureKnown

        boolean isStructureKnown()
                          throws JavaModelException
        Returns whether the structure of this element is known. For example, for a compilation unit that has syntax errors, false is returned. If the structure of an element is unknown, navigations will return reasonable defaults. For example, getChildren for a compilation unit with syntax errors will return a collection of the children that could be parsed.

        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:
        JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource