blob: 04d1a22274a7c244a38a259d92207b93144c3a22 [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2015 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.interoperability.common.internal.extension;
import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.m2m.qvt.oml.ExecutionContext;
import org.eclipse.papyrus.interoperability.common.concurrent.ExecutorsPool;
import org.eclipse.papyrus.interoperability.common.transformation.IImportTransformation;
/**
* Extension to the RSA-to-Papyrus model transformation
*
* Provisional API
*
* @author Camille Letavernier
*
*/
public interface TransformationExtension {
/**
* Invoked only once when the extension is loaded for the first time (Before any execution)
*
* @return
* The source EPackages required by this transformation (Typically source profile definitions)
*/
public Set<EPackage> getAdditionalSourceEPackages();
/**
* The resource set used by the main transformation. Contains the source and target resources
*
* @param resourceSet
*/
public void setResourceSet(ResourceSet resourceSet);
/**
* The ExecutorsPool used for manipulating parallel QVTo transformations
*
* @param executorsPool
*/
public void setExecutorsPool(ExecutorsPool executorsPool);
/**
*
* @param importTransformation
*/
public void setTransformation(IImportTransformation importTransformation);
/**
* Part of the transformation that is executed before the main transformation's semantics and graphics import
*
* @param context
* The QVTo execution context
* @param monitor
* The current progress monitor. The monitor is reused from the main transformation; only use subtask/worked methods
* @return
*/
public IStatus executeBefore(ExecutionContext context, IProgressMonitor monitor);
/**
* Part of the transformation that is executed after both the semantics and graphics have been imported
*
* @param context
* The QVTo execution context
* @param monitor
* The current progress monitor. The monitor is reused from the main transformation; only use subtask/worked methods
* @return
*/
public IStatus executeAfter(ExecutionContext context, IProgressMonitor monitor);
/**
* The number of work steps required by this transformation. Corresponds to the total number of worked() you can invoke in executeBefore/executeAfter
*
* @return
*/
public int getNumberOfSteps();
}