Eclipse JDT
2.0

org.eclipse.jdt.core
Interface IJavaElement

All Superinterfaces:
IAdaptable
All Known Subinterfaces:
IClassFile, ICompilationUnit, IField, IImportContainer, IImportDeclaration, IInitializer, IJavaModel, IJavaProject, IMember, IMethod, IPackageDeclaration, IPackageFragment, IPackageFragmentRoot, IType

public interface IJavaElement
extends IAdaptable

Common protocol for all elements provided by the Java model. Java model elements are exposed to clients as handles to the actual underlying element. The Java model may hand out any number of handles for each element. Handles that refer to the same element are guaranteed to be equal, but not necessarily identical.

Methods annotated as "handle-only" do not require underlying elements to exist. Methods that require underlying elements to exist throw a JavaModelException when an underlying element is missing. JavaModelException.isDoesNotExist can be used to recognize this common special case.

This interface is not intended to be implemented by clients.


Field Summary
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_PROJECT
          Constant representing a Java project.
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).
 
Method Summary
 boolean exists()
          Returns whether this Java element exists in the model.
 IJavaElement getAncestor(int ancestorType)
          Returns the first ancestor of this Java element that has the given type.
 IResource getCorrespondingResource()
          Returns the resource that corresponds directly to this element, or null if there is no resource that corresponds to this element.
 String getElementName()
          Returns the name of this element.
 int getElementType()
          Returns this element's kind encoded as an integer.
 String getHandleIdentifier()
          Returns a string representation of this element handle.
 IJavaModel getJavaModel()
          Returns the Java model.
 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).
 IOpenable getOpenable()
          Returns the first openable parent.
 IJavaElement getParent()
          Returns the element directly containing this element, or null if this element has no parent.
 IPath getPath()
          Returns the path to the innermost resource enclosing this element.
 IResource getResource()
          Returns the innermost resource enclosing this element.
 IResource getUnderlyingResource()
          Returns the smallest underlying resource that contains this element, or null if this element is not contained in a resource.
 boolean isReadOnly()
          Returns whether this Java element is read-only.
 boolean isStructureKnown()
          Returns whether the structure of this element is known.
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 

Field Detail

JAVA_MODEL

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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

public 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
Method Detail

exists

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

Returns:
true if this element exists in the Java model

getAncestor

public IJavaElement getAncestor(int ancestorType)
Returns the first ancestor of this Java 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 Java element that has the given type, null if no such an ancestor can be found
Since:
2.0

getCorrespondingResource

public 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

public String getElementName()
Returns the name of this element. This is a handle-only method.

Returns:
the element name

getElementType

public 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

public 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

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

Returns:
the Java model

getJavaProject

public 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

public 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

public 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

public 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.

Returns:
the path to the innermost resource enclosing this element
Since:
2.0

getResource

public 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 archive, null is returned. If this element is a working copy, null is returned. This is a handle-only method.

Returns:
the innermost resource enclosing this element, null if this element is a working copy or is included in an external archive
Since:
2.0

getUnderlyingResource

public 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

public 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

public boolean isStructureKnown()
                         throws JavaModelException
Returns whether the structure of this element is known. For example, for a compilation 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:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.