org.eclipse.jdt.core
Interface IClasspathContainer

All Known Implementing Classes:
ClasspathTests.TestContainer, CompletionTests2.CompletionContainerInitializer.DefaultContainer, DefaultContainerInitializer.DefaultContainer, UserLibraryClasspathContainer

public interface IClasspathContainer

Interface of a classpath container. A classpath container provides a way to indirectly reference a set of classpath entries through a classpath entry of kind CPE_CONTAINER. Typically, a classpath container can be used to describe a complex library composed of multiple JARs or projects, considering also that containers can map to different set of entries on each project, in other words, several projects can reference the same generic container path, but have each of them actually bound to a different container object.

The set of entries associated with a classpath container may contain any of the following:

In particular, a classpath container can neither reference further classpath containers or classpath variables.

Classpath container values are persisted locally to the workspace, but are not preserved from a session to another. It is thus highly recommended to register a ClasspathContainerInitializer for each referenced container (through the extension point "org.eclipse.jdt.core.ClasspathContainerInitializer").

Since:
2.0
See Also:
IClasspathEntry

Field Summary
static int K_APPLICATION
          Kind for a container mapping to an application library
static int K_DEFAULT_SYSTEM
          Kind for a container mapping to a default system library, implicitly contributed by the runtime
static int K_SYSTEM
          Kind for a container mapping to a system library
 
Method Summary
 IClasspathEntry[] getClasspathEntries()
          Answers the set of classpath entries this container is mapping to.
 java.lang.String getDescription()
          Answers a readable description of this container
 int getKind()
          Answers the kind of this container.
 org.eclipse.core.runtime.IPath getPath()
          Answers the container path identifying this container.
 

Field Detail

K_APPLICATION

static final int K_APPLICATION
Kind for a container mapping to an application library

See Also:
Constant Field Values

K_SYSTEM

static final int K_SYSTEM
Kind for a container mapping to a system library

See Also:
Constant Field Values

K_DEFAULT_SYSTEM

static final int K_DEFAULT_SYSTEM
Kind for a container mapping to a default system library, implicitly contributed by the runtime

See Also:
Constant Field Values
Method Detail

getClasspathEntries

IClasspathEntry[] getClasspathEntries()
Answers the set of classpath entries this container is mapping to.

The set of entries associated with a classpath container may contain any of the following:

A classpath container can neither reference further classpath containers or classpath variables.

This method is called by the Java model when it needs to resolve this classpath container entry into a list of library and project entries. The method is typically called exactly once for a given Java project, and the resulting list of entries cached internally by the Java model. This method must not be called by other clients.

There are a wide variety of conditions under which this method may be invoked. To ensure that the implementation does not interfere with correct functioning of the Java model, the implementation should use only the following Java model APIs:

The effects of using other Java model APIs are unspecified.

Returns:
IClasspathEntry[] - the classpath entries this container represents
See Also:
IClasspathEntry

getDescription

java.lang.String getDescription()
Answers a readable description of this container

Returns:
String - a string description of the container

getKind

int getKind()
Answers the kind of this container. Can be either: Typically, system containers should be placed first on a build path.

Returns:
the kind of this container

getPath

org.eclipse.core.runtime.IPath getPath()
Answers the container path identifying this container. A container path is formed by a first ID segment followed with extra segments, which can be used as additional hints for resolving to this container.

The container ID is also used to identify aClasspathContainerInitializer registered on the extension point "org.eclipse.jdt.core.classpathContainerInitializer", which can be invoked if needing to resolve the container before it is explicitly set.

Returns:
IPath - the container path that is associated with this container