Class ProjectSetCapability
- Since:
- 2.1
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Scheme constant (value "scm") indicating the SCM URI. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionIProject[]
addToWorkspace
(String[] referenceStrings, ProjectSetSerializationContext context, IProgressMonitor monitor) For every String inreferenceStrings
, load the corresponding project into the workspace.asReference
(URI uri, String projectName) Convert the given URI and projectName to a reference string that can be passed to theaddToWorkspace(String[], ProjectSetSerializationContext, IProgressMonitor)
method.String[]
asReference
(IProject[] providerProjects, ProjectSetSerializationContext context, IProgressMonitor monitor) For every project in providerProjects, return an opaque UTF-8 encoded String to act as a reference to that project.protected IProject[]
confirmOverwrite
(ProjectSetSerializationContext context, IProject[] projects) Determine if any of the projects already exist and confirm which of those projects are to be overwritten.static void
ensureBackwardsCompatible
(RepositoryProviderType type, ProjectSetCapability capability) Ensure that the provider type is backwards compatible by passing the project set serializer to the type if a serializer is registered.getProject
(String referenceString) Return the name of the project that is the target of the given reference string ornull
if this capability does not support parsing of reference strings.Return the URI for the given reference string ornull
if this capability does not support file system schemes as defined by theorg.eclipse.core.filesystem.filesystems
extension point.void
projectSetCreated
(File file, Object context, IProgressMonitor monitor) Deprecated.should use or override projectSetCreated(File, ProjectSetSerializationContext, IProgressMonitor) insteadvoid
projectSetCreated
(File file, ProjectSetSerializationContext context, IProgressMonitor monitor) Notify the provider that a project set has been created at path.
-
Field Details
-
SCHEME_SCM
Scheme constant (value "scm") indicating the SCM URI.- Since:
- 3.6
- See Also:
-
-
Constructor Details
-
ProjectSetCapability
public ProjectSetCapability()
-
-
Method Details
-
ensureBackwardsCompatible
public static void ensureBackwardsCompatible(RepositoryProviderType type, ProjectSetCapability capability) Ensure that the provider type is backwards compatible by passing the project set serializer to the type if a serializer is registered. This is required for repository providers who implemented a project set capability in 2.1 (before the capability contained the serialization API) and have not released a 3.0 plugin yet. This method is called before project set export and import and can be used by other clients who work with project sets.- Parameters:
type
- the provider type instancecapability
- the capability that was obtained from the provider type- Since:
- 3.0
-
projectSetCreated
Deprecated.should use or override projectSetCreated(File, ProjectSetSerializationContext, IProgressMonitor) insteadNotify the provider that a project set has been created at path. Only providers identified as having projects in the project set will be notified. The project set may or may not be created in a workspace project (thus may not be a resource).- Parameters:
file
- the project set file that was createdcontext
- a UI context object. This object will either be a com.ibm.swt.widgets.Shell or it will be null.monitor
- a progress monitor
-
projectSetCreated
public void projectSetCreated(File file, ProjectSetSerializationContext context, IProgressMonitor monitor) Notify the provider that a project set has been created at path. Only providers identified as having projects in the project set will be notified. The project set may or may not be created in a workspace project (thus may not be a resource).- Parameters:
file
- the project set file that was createdcontext
- the context in which the references are created (notnull
)monitor
- a progress monitor- Since:
- 3.0
-
asReference
public String[] asReference(IProject[] providerProjects, ProjectSetSerializationContext context, IProgressMonitor monitor) throws TeamException For every project in providerProjects, return an opaque UTF-8 encoded String to act as a reference to that project. The format of the String is specific to the provider. The format of the String must be such thataddToWorkspace(String[], ProjectSetSerializationContext, IProgressMonitor)
will be able to consume it and load the corresponding project.This default implementation simply throws an exception indicating that no references can be created unless there is an IProjectSetSerializer registered for the repository provider type in which case the operation is delegated to the serializer. Subclasses are expected to override.
- Parameters:
providerProjects
- an array of projects for which references are needed (notnull
and contains nonull
s)context
- the context in which the references are created (notnull
)monitor
- a progress monitor ornull
if none- Returns:
- an array containing exactly the same number of elements
as the providerProjects argument
where each element is a serialized reference string
uniquely identifying the corresponding the project in the providerProjects array
(not
null
and contains nonull
s) - Throws:
TeamException
- thrown if there is a reference string cannot be created for a project- Since:
- 3.0
-
addToWorkspace
public IProject[] addToWorkspace(String[] referenceStrings, ProjectSetSerializationContext context, IProgressMonitor monitor) throws TeamException For every String inreferenceStrings
, load the corresponding project into the workspace. The opaque strings inreferenceStrings
are guaranteed to have been previously produced byasReference(IProject[], ProjectSetSerializationContext, IProgressMonitor)
. TheconfirmOverwrite(ProjectSetSerializationContext, IProject[])
method is called with an array of projects for which projects of the same name already exists in the workspace.Callers from within a UI context should wrap a call to this method inside a
WorkspaceModifyOperation
so that events generated as a result of this operation are deferred until the outermost operation has successfully completed.This default implementation simply throws an exception indicating that no projects can be loaded unless there is an
IProjectSetSerializer
registered for the repository provider type in which case the operation is delegated to the serializer. Subclasses are expected to override.- Parameters:
referenceStrings
- an array of reference strings uniquely identifying the projects (notnull
and contains nonull
s)context
- the context in which the projects are loaded (notnull
)monitor
- a progress monitor ornull
if none- Returns:
- IProject[]
an array of projects that were loaded
excluding those projects already existing and not overwritten
(not
null
, contains nonull
s) - Throws:
TeamException
- thrown if there is a problem loading a project into the workspace. If an exception is thrown, then the workspace is left in an unspecified state where some of the referenced projects may be loaded or partially loaded, and others may not.- Since:
- 3.0
-
confirmOverwrite
protected IProject[] confirmOverwrite(ProjectSetSerializationContext context, IProject[] projects) throws TeamException Determine if any of the projects already exist and confirm which of those projects are to be overwritten.- Parameters:
context
- the context in which the projects are loaded (notnull
)projects
- an array of proposed projects to be loaded (notnull
, contains nonull
s)- Returns:
- an array of confirmed projects to be loaded
or
null
if the operation is to be canceled. - Throws:
TeamException
- on failure- Since:
- 3.0
-
getURI
Return the URI for the given reference string ornull
if this capability does not support file system schemes as defined by theorg.eclipse.core.filesystem.filesystems
extension point.- Parameters:
referenceString
- a reference string obtained fromasReference(IProject[], ProjectSetSerializationContext, IProgressMonitor)
- Returns:
- the URI for the given reference string or
null
- Since:
- 3.2
- See Also:
-
getProject
Return the name of the project that is the target of the given reference string ornull
if this capability does not support parsing of reference strings.- Parameters:
referenceString
- reference string obtained fromasReference(IProject[], ProjectSetSerializationContext, IProgressMonitor)
- Returns:
- the name of the project that is the target of the given
reference string or
null
- Since:
- 3.2
- See Also:
-
asReference
Convert the given URI and projectName to a reference string that can be passed to theaddToWorkspace(String[], ProjectSetSerializationContext, IProgressMonitor)
method. The scheme of the provided URI must match the scheme of the repository provider type from which this capability was obtained.Since 3.7 SCM URIs are also accepted.
The default implementation returns
null
. Subclasses may override.- Parameters:
uri
- the URI that identifies the location of the project in the repository.projectName
- the name of the project to use. Ifnull
, use a project name from the provided SCM URI. If the URI does not contain the project name the last segment of the URI's path is used. If this fails,null
is returned.- Returns:
- the reference string representing a project that can be loaded
into the workspace or
null
, if the URI and name cannot be translated into a reference string - Since:
- 3.2
- See Also:
-