Interface IClasspathContainer


  • 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:

    • library entries (CPE_LIBRARY)
    • project entries (CPE_PROJECT)
    In particular, a classpath container can neither reference further classpath containers or classpath variables.

    A library entry can reference other libraries through the Class-Path section of the JAR's MANIFEST.MF file. If the container wants such referenced entries to be part of the classpath, the container must explicitly add them to the array returned from getClasspathEntries().

    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

      Fields 
      Modifier and Type Field Description
      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
    • 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

      • getDescription

        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:
        • K_APPLICATION if this container maps to an application library
        • K_SYSTEM if this container maps to a system library
        • K_DEFAULT_SYSTEM if this container maps to a default system library (library implicitly contributed by the runtime).
        Typically, system containers should be placed first on a build path.
        Returns:
        the kind of this container
      • getPath

        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