|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.jdt.core.ClasspathContainerInitializer
org.eclipse.jdt.internal.core.UserLibraryClasspathContainerInitializer
public class UserLibraryClasspathContainerInitializer
Field Summary |
---|
Fields inherited from class org.eclipse.jdt.core.ClasspathContainerInitializer |
---|
ATTRIBUTE_NOT_SUPPORTED, ATTRIBUTE_READ_ONLY |
Constructor Summary | |
---|---|
UserLibraryClasspathContainerInitializer()
|
Method Summary | |
---|---|
boolean |
canUpdateClasspathContainer(org.eclipse.core.runtime.IPath containerPath,
IJavaProject project)
Returns true if this container initializer can be requested to perform updates
on its own container values. |
java.lang.Object |
getComparisonID(org.eclipse.core.runtime.IPath containerPath,
IJavaProject project)
Returns an object which identifies a container for comparison purpose. |
java.lang.String |
getDescription(org.eclipse.core.runtime.IPath containerPath,
IJavaProject project)
Returns a readable description for a container path. |
void |
initialize(org.eclipse.core.runtime.IPath containerPath,
IJavaProject project)
Binds a classpath container to a IClasspathContainer for a given project,
or silently fails if unable to do so. |
void |
requestClasspathContainerUpdate(org.eclipse.core.runtime.IPath containerPath,
IJavaProject project,
IClasspathContainer containerSuggestion)
Request a registered container definition to be updated according to a container suggestion. |
Methods inherited from class org.eclipse.jdt.core.ClasspathContainerInitializer |
---|
getAccessRulesStatus, getAttributeStatus, getFailureContainer, getSourceAttachmentStatus |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public UserLibraryClasspathContainerInitializer()
Method Detail |
---|
public boolean canUpdateClasspathContainer(org.eclipse.core.runtime.IPath containerPath, IJavaProject project)
ClasspathContainerInitializer
true
if this container initializer can be requested to perform updates
on its own container values. If so, then an update request will be performed using
ClasspathContainerInitializer.requestClasspathContainerUpdate(IPath, IJavaProject, IClasspathContainer)
.
canUpdateClasspathContainer
in class ClasspathContainerInitializer
containerPath
- the path of the container which requires to be updatedproject
- the project for which the container is to be updated
true
if the container can be updatedpublic java.lang.Object getComparisonID(org.eclipse.core.runtime.IPath containerPath, IJavaProject project)
ClasspathContainerInitializer
getComparisonID
in class ClasspathContainerInitializer
containerPath
- the path of the container which is being checkedproject
- the project for which the container is to being checked
public java.lang.String getDescription(org.eclipse.core.runtime.IPath containerPath, IJavaProject project)
ClasspathContainerInitializer
IClasspathContainer.getDescription()
).
getDescription
in class ClasspathContainerInitializer
containerPath
- the path of the container which requires a readable descriptionproject
- the project from which the container is referenced
ClasspathContainerInitializer.getDescription(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)
public void initialize(org.eclipse.core.runtime.IPath containerPath, IJavaProject project) throws org.eclipse.core.runtime.CoreException
ClasspathContainerInitializer
IClasspathContainer
for a given project,
or silently fails if unable to do so.
A container is identified by a container path, which must be formed of two segments. The first segment is used as a unique identifier (which this initializer did register onto), and the second segment can be used as an additional hint when performing the resolution.
The initializer is invoked if a container path needs to be resolved for a given project, and no
value for it was recorded so far. The implementation of the initializer would typically set the
corresponding container using JavaCore#setClasspathContainer
.
A container initialization can be indirectly performed while attempting to resolve a project
classpath using IJavaProject#getResolvedClasspath(
; or directly when using
JavaCore#getClasspathContainer
. During the initialization process, any attempt
to further obtain the same container will simply return null
so as to avoid an
infinite regression of initializations.
A container initialization may also occur indirectly when setting a project classpath, as the operation needs to resolve the classpath for validation purpose. While the operation is in progress, a referenced container initializer may be invoked. If the initializer further tries to access the referring project classpath, it will not see the new assigned classpath until the operation has completed. Note that once the Java change notification occurs (at the end of the operation), the model has been updated, and the project classpath can be queried normally.
This method is called by the Java model to give the party that defined this particular kind of classpath container the chance to install classpath container objects that will be used to convert classpath container entries into simpler classpath entries. The method is typically called exactly once for a given Java project and classpath container entry. 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:
JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], org.eclipse.core.runtime.IProgressMonitor)
JavaCore.getClasspathContainer(IPath, IJavaProject)
JavaCore.create(org.eclipse.core.resources.IWorkspaceRoot)
JavaCore.create(org.eclipse.core.resources.IProject)
IJavaModel.getJavaProjects()
initialize
in class ClasspathContainerInitializer
containerPath
- a two-segment path (ID/hint) identifying the container that needs
to be resolvedproject
- the Java project in which context the container is to be resolved.
This allows generic containers to be bound with project specific values.
org.eclipse.core.runtime.CoreException
- if an exception occurs during the initializationJavaCore.getClasspathContainer(IPath, IJavaProject)
,
JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], org.eclipse.core.runtime.IProgressMonitor)
,
IClasspathContainer
public void requestClasspathContainerUpdate(org.eclipse.core.runtime.IPath containerPath, IJavaProject project, IClasspathContainer containerSuggestion) throws org.eclipse.core.runtime.CoreException
ClasspathContainerInitializer
IMPORTANT: In reaction to receiving an update request, a container initializer will update the corresponding
container definition (after reconciling changes) at its earliest convenience, using
JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[], IProgressMonitor)
.
Until it does so, the update will not be reflected in the Java Model.
In order to anticipate whether the container initializer allows to update its containers, the predicate
ClasspathContainerInitializer.canUpdateClasspathContainer(IPath, IJavaProject)
should be used.
requestClasspathContainerUpdate
in class ClasspathContainerInitializer
containerPath
- the path of the container which requires to be updatedproject
- the project for which the container is to be updatedcontainerSuggestion
- a suggestion to update the corresponding container definition
org.eclipse.core.runtime.CoreException
- when JavaCore#setClasspathContainer
would throw any.ClasspathContainerInitializer.requestClasspathContainerUpdate(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject, org.eclipse.jdt.core.IClasspathContainer)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |