Copyright (c) 2011 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2011 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.team.core.importing.provisional;
import java.util.Map;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.team.core.ScmUrlImportDescription;
A bundle importer delegate is contributed by a bundle importer extension and
is capable of importing projects into the workspace from a repository based
on bundle manifest entries.
Following is an example extension:
<extension point="org.eclipse.team.core.bundleImporters">
<importer
id="com.example.ExampleIdentifier"
class="com.example.ExampleBundleImporterDelegate">
</importer>
</extension>
Clients contributing bundle importer extensions are intended to implement this interface. They can also subclass BundleImporterDelegate
.
EXPERIMENTAL. This interface has been added as part of a
work in progress. There is no guarantee that this API will work or that it
will remain the same. Please do not use this API without consulting with the
Team team.
Since: 3.6 @noextend This interface is not intended to be extended by clients.
/**
* A bundle importer delegate is contributed by a bundle importer extension and
* is capable of importing projects into the workspace from a repository based
* on bundle manifest entries.
* <p>
* Following is an example extension:
* </p>
*
* <pre>
* <extension point="org.eclipse.team.core.bundleImporters">
* <importer
* id="com.example.ExampleIdentifier"
* class="com.example.ExampleBundleImporterDelegate">
* </importer>
* </extension>
* </pre>
*
* <p>
* Clients contributing bundle importer extensions are intended to implement
* this interface. They can also subclass {@link BundleImporterDelegate}.
* </p>
* <p>
* <strong>EXPERIMENTAL</strong>. This interface has been added as part of a
* work in progress. There is no guarantee that this API will work or that it
* will remain the same. Please do not use this API without consulting with the
* Team team.
* </p>
*
* @since 3.6
* @noextend This interface is not intended to be extended by clients.
*/
public interface IBundleImporterDelegate {
Returns an array of objects describing how each given bundle (manifest
headers and values) can be imported into a workspace project. A
null
entry in the returned array indicates the corresponding
bundle cannot be imported by this delegate.
Params: - manifests –
array of maps containing manifest headers and values of the
associated bundles
Returns: array of bundle import descriptions that may contain
null
entries
/**
* Returns an array of objects describing how each given bundle (manifest
* headers and values) can be imported into a workspace project. A
* <code>null</code> entry in the returned array indicates the corresponding
* bundle cannot be imported by this delegate.
*
* @param manifests
* array of maps containing manifest headers and values of the
* associated bundles
* @return array of bundle import descriptions that may contain
* <code>null</code> entries
*/
public ScmUrlImportDescription[] validateImport(Map[] manifests);
Imports bundles into the workspace creating a project for each import
description. Reports progress to the given monitor, if not
null
.
Params: - descriptions –
description of bundles to import
- monitor –
progress monitor or
null
Throws: - CoreException –
if unable to import projects
Returns: collection of projects created in the workspace or
null
if none
/**
* Imports bundles into the workspace creating a project for each import
* description. Reports progress to the given monitor, if not
* <code>null</code>.
*
* @param descriptions
* description of bundles to import
* @param monitor
* progress monitor or <code>null</code>
* @return collection of projects created in the workspace or
* <code>null</code> if none
* @throws CoreException
* if unable to import projects
*/
public IProject[] performImport(ScmUrlImportDescription[] descriptions,
IProgressMonitor monitor) throws CoreException;
}