package org.rubypeople.rdt.core;
import org.eclipse.core.runtime.IPath;
public interface ILoadpathContainer {
/**
* Kind for a container mapping to an application library
*/
int K_APPLICATION = 1;
/**
* Kind for a container mapping to a system library
*/
int K_SYSTEM = 2;
/**
* Kind for a container mapping to a default system library, implicitly contributed by the runtime
*/
int K_DEFAULT_SYSTEM = 3;
ILoadpathEntry[] getLoadpathEntries();
/**
* Answers a readable description of this container
*
* @return String - a string description of the container
*/
String getDescription();
/**
* Answers the kind of this container. Can be either:
* <ul>
* <li><code>K_APPLICATION</code> if this container maps to an application library</li>
* <li><code>K_SYSTEM</code> if this container maps to a system library</li>
* <li><code>K_DEFAULT_SYSTEM</code> if this container maps to a default system library (library
* implicitly contributed by the runtime).</li>
* </ul>
* Typically, system containers should be placed first on a build path.
* @return the kind of this container
*/
int getKind();
/**
* 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.
* <p>
* The container ID is also used to identify a<code>ClasspathContainerInitializer</code>
* 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.
* <p>
* @return IPath - the container path that is associated with this container
*/
IPath getPath();
}