blob: 5b268da6f359bede5a0e9851ca6098edfe669a9f [file] [log] [blame]
/**
* Copyright (c)2020 CEA LIST, Committer Name, 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
* Gabriel Pedroza (CEA LIST) gabriel.pedroza@cea.fr
*
*/
package org.eclipse.papyrus.pdp4eng.designer.controller.api;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.uml2.uml.Action;
import org.eclipse.uml2.uml.Activity;
import org.eclipse.uml2.uml.OpaqueAction;
/**
* Interface that declares model transformation for Data
*
*/
public interface IModelTransfo {
/**
* return a command to create an abstraction from a gieven Data
* @param domain
* @param data
* @return a command, it is never null
*/
public Command getAbstractionDataCommand(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Element data);
/**
* Return a command that create a DFD in the design package (owner) from a DFD of the RequirementPackage
* @param domain domain to execute command
* @param owner a package that contain the new DFD
* @param reqSource the DFD source
* @return a command
*/
public Command getCreateProcessModelFromReq(TransactionalEditingDomain domain, org.eclipse.uml2.uml.Package owner,org.eclipse.uml2.uml.Activity ReqDFDSource);
/**
* Return a command that transform a process to a process call
* @param domain in order to execute the command
* @param process that will be transform into a call process
* @return the command
*/
public Command getCallProcessToProcessCommand(TransactionalEditingDomain domain, OpaqueAction callProcess );
/**
* Return a command that transform a process (Action) to a process call
* @param domain
* @param process
* @return
*/
public Command getActionCallProcessToProcessCommand(TransactionalEditingDomain domain, Action actionCallProcess);
/**
* Return a command that transforms all the CallProcess within and Activity DFD to a Process (Activity)
* @param domain
* @param activityDFD
* @return
*/
public Command getAllCallProcessToProcessCommand(TransactionalEditingDomain domain, Activity activityDFD);
/**
* Applies the PDPbDesign profile to an Activity diagram according to DFD definition
* @param domain
* @param activityDFD
* @return
*/
public Command getApplyPDPbDProfileToActivityDFDCommand(TransactionalEditingDomain domain, Activity activityDFD);
/**
* Instantiate a GDPR pattern to ensure consent over personal data processed
* @param domain
* @param process
* @return
*/
public Command getInstantiateGDPRConsentPatternCommand(TransactionalEditingDomain domain, Activity process);
}