diff options
Diffstat (limited to 'cdo/bundles/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/core/importer/IModelTransferConfiguration.java')
-rwxr-xr-x | cdo/bundles/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/core/importer/IModelTransferConfiguration.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/cdo/bundles/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/core/importer/IModelTransferConfiguration.java b/cdo/bundles/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/core/importer/IModelTransferConfiguration.java new file mode 100755 index 00000000..5df0d72a --- /dev/null +++ b/cdo/bundles/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/core/importer/IModelTransferConfiguration.java @@ -0,0 +1,78 @@ +/***************************************************************************** + * Copyright (c) 2013, 2017 CEA LIST and others. + * + * All rights reserved. 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: + * CEA LIST - Initial API and implementation + * Christian W. Damus (CEA) - bug 429242 + * + *****************************************************************************/ +package org.eclipse.papyrus.cdo.core.importer; + +import java.util.Collection; + +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.papyrus.cdo.internal.core.exporter.DefaultModelExportConfigurationFactory; +import org.eclipse.papyrus.cdo.internal.core.importer.DefaultModelImportConfigurationFactory; + +/** + * This is the IModelTransferConfiguration type. Enjoy. + */ +public interface IModelTransferConfiguration { + + Collection<IModelTransferNode> getModelsToTransfer(); + + IModelTransferNode addModelToTransfer(URI resourceURI); + + void removeModelToTransfer(IModelTransferNode node); + + ResourceSet getResourceSet(); + + void addModelDependentsProvider(IModelDependentsProvider provider); + + IModelTransferOperation.Context getOperationContext(); + + boolean hasSashModelContent(); + + boolean isStripSashModelContent(); + + void setStripSashModelContent(boolean stripSashModelContent); + + Diagnostic validate(); + + void dispose(); + + void addModelTransferListener(IModelTransferListener listener); + + void removeModelTransferListener(IModelTransferListener listener); + + interface Factory { + + Factory IMPORT = new DefaultModelImportConfigurationFactory(); + + Factory EXPORT = new DefaultModelExportConfigurationFactory(); + + /** + * Creates a new model transfer configuration. If a {@code ResourceSet} is provided, + * then the configuration will use it to load resources for dependency analysis. It will + * then be the caller's responsibility to clean up that resource set, if necessary, + * after completion of the transfer process. + * + * @param operationContext + * a context in which to run model transfer operations + * @param resourceSet + * an optional resource set for the configuration to use for dependency analysis; may be {@code null} + * + * @return the model transfer configuration + */ + IModelTransferConfiguration create(IModelTransferOperation.Context operationContext, ResourceSet resourceSet); + } +} |