/** | |
* 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.internal.processcreation; | |
import org.eclipse.uml2.uml.Activity; | |
import org.eclipse.uml2.uml.ActivityParameterNode; | |
import org.eclipse.uml2.uml.DataStoreNode; | |
import org.eclipse.uml2.uml.Element; | |
import org.eclipse.uml2.uml.NamedElement; | |
import org.eclipse.uml2.uml.UMLFactory; | |
public class DataStoreProcessCreation implements IProcessCreation { | |
private boolean seekParameter; | |
private boolean sourceParameter; | |
@Override | |
public Element createElement(Element dataStore, Element activity) { | |
if( dataStore instanceof DataStoreNode) { | |
DataStoreNode dataStoreNode=(DataStoreNode)dataStore; | |
if( dataStoreNode.getIncomings().size()==0 && sourceParameter) { | |
ActivityParameterNode activityParameterNode= UMLFactory.eINSTANCE.createActivityParameterNode(); | |
((Activity) activity).getOwnedNodes().add(activityParameterNode); | |
activityParameterNode.setName(((DataStoreNode)dataStore).getName()); | |
ProcessBuilder.createSatisfy((NamedElement)activityParameterNode, (NamedElement)dataStore); | |
} | |
else if( dataStoreNode.getOutgoings().size()==0&& seekParameter) { | |
ActivityParameterNode activityParameterNode= UMLFactory.eINSTANCE.createActivityParameterNode(); | |
((Activity) activity).getOwnedNodes().add(activityParameterNode); | |
activityParameterNode.setName(((DataStoreNode)dataStore).getName()); | |
ProcessBuilder.createSatisfy((NamedElement)activityParameterNode, (NamedElement)dataStore); | |
} | |
else { | |
DataStoreNode aDataStoreNode= UMLFactory.eINSTANCE.createDataStoreNode(); | |
((Activity) activity).getOwnedNodes().add(aDataStoreNode); | |
aDataStoreNode.setName(((DataStoreNode)dataStore).getName()); | |
ProcessBuilder.createSatisfy((NamedElement)aDataStoreNode, (NamedElement)dataStore); | |
return aDataStoreNode; | |
} | |
} | |
return null; | |
} | |
public void generateParameterForSeek(boolean value) { | |
this.seekParameter=value; | |
} | |
public void generateParameterForSource(boolean value) { | |
this.sourceParameter=value; | |
} | |
} |