Bug 516820: [BPMN] implement SequenceFlow and FlowNode derived properties
Change-Id: I53f042e72aa38b3320514de6750a85ec86522d57
Signed-off-by: Géry Deloge <gery.deloge@cea.fr>
diff --git a/org.eclipse.papyrus.bpmn.tests/src/org/eclipse/papyrus/bpmn/bpmnprofiletest/FlowNodeCustomTest.java b/org.eclipse.papyrus.bpmn.tests/src/org/eclipse/papyrus/bpmn/bpmnprofiletest/FlowNodeCustomTest.java
new file mode 100644
index 0000000..d647c71
--- /dev/null
+++ b/org.eclipse.papyrus.bpmn.tests/src/org/eclipse/papyrus/bpmn/bpmnprofiletest/FlowNodeCustomTest.java
@@ -0,0 +1,123 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA.
+ * <p>
+ * 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
+ * <p>
+ * Contributors:
+ * Géry Deloge (CEATech AQUI) gery.deloge@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.bpmn.bpmnprofiletest;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNAssociation;
+import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage;
+import org.eclipse.papyrus.bpmn.BPMNProfile.FlowNode;
+import org.eclipse.papyrus.bpmn.BPMNProfile.impl.FlowNodeCustom;
+import org.eclipse.papyrus.bpmn.util.BPMNResource;
+import org.eclipse.uml2.uml.*;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.StereotypeApplicationHelper;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class FlowNodeCustomTest {
+
+ private OpaqueAction source;
+ private OpaqueAction target;
+
+ @Before
+ public void setUp() {
+ Model model = BPMNResource.createBPMNModel();
+
+ Activity activity = UMLFactory.eINSTANCE.createActivity();
+ model.getPackagedElements().add(activity);
+ StereotypeApplicationHelper.getInstance(null).applyStereotype(activity, BPMNProfilePackage.eINSTANCE.getBPMNProcess());
+
+ ControlFlow controlFlow = UMLFactory.eINSTANCE.createControlFlow();
+ controlFlow.setActivity(activity);
+ StereotypeApplicationHelper.getInstance(null).applyStereotype(controlFlow, BPMNProfilePackage.eINSTANCE.getSequenceFlow());
+
+ source = UMLFactory.eINSTANCE.createOpaqueAction();
+ activity.getOwnedNodes().add(source);
+ StereotypeApplicationHelper.getInstance(null).applyStereotype(source, BPMNProfilePackage.eINSTANCE.getTask());
+
+ target = UMLFactory.eINSTANCE.createOpaqueAction();
+ activity.getOwnedNodes().add(target);
+ StereotypeApplicationHelper.getInstance(null).applyStereotype(target, BPMNProfilePackage.eINSTANCE.getTask());
+
+ controlFlow.setSource(source);
+ controlFlow.setTarget(target);
+ }
+
+ @Test
+ public void getOutgoingGeneratedTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(source, FlowNode.class);
+ try{
+ flownode.getOutgoing();
+ }
+ catch(UnsupportedOperationException e){
+ Assert.fail("missing custom code !");
+ }
+ }
+
+ /* ignored for now
+ see https://bugs.eclipse.org/bugs/show_bug.cgi?id=516820
+ */
+ @Ignore @Test
+ public void getOutgoingGeneratedCustomTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(source, FlowNode.class);
+ EList<BPMNAssociation> list = FlowNodeCustom.getOutgoing(flownode);
+ Assert.assertEquals(1, list.size());
+ Assert.assertEquals(target, list.get(0));
+ }
+
+ /* ignored for now
+ see https://bugs.eclipse.org/bugs/show_bug.cgi?id=516820
+ */
+ @Ignore @Test
+ public void getOutgoingTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(source, FlowNode.class);
+ EList<BPMNAssociation> list = flownode.getOutgoing();
+ Assert.assertEquals(1, list.size());
+ Assert.assertEquals(target, list.get(0));
+ }
+
+
+ @Test
+ public void getIncomingGeneratedTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(target, FlowNode.class);
+ try{
+ flownode.getIncoming();
+ }
+ catch(UnsupportedOperationException e){
+ Assert.fail("missing custom code !");
+ }
+ }
+
+ /* ignored for now
+ see https://bugs.eclipse.org/bugs/show_bug.cgi?id=516820
+ */
+ @Ignore @Test
+ public void getIncomingGeneratedCustomTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(target, FlowNode.class);
+ EList<BPMNAssociation> list = FlowNodeCustom.getOutgoing(flownode);
+ Assert.assertEquals(1, list.size());
+ Assert.assertEquals(source, list.get(0));
+ }
+
+ /* ignored for now
+ see https://bugs.eclipse.org/bugs/show_bug.cgi?id=516820
+ */
+ @Ignore @Test
+ public void getIncomingTest(){
+ FlowNode flownode = UMLUtil.getStereotypeApplication(target, FlowNode.class);
+ EList<BPMNAssociation> list = flownode.getOutgoing();
+ Assert.assertEquals(1, list.size());
+ Assert.assertEquals(source, list.get(0));
+ }
+}
diff --git a/org.eclipse.papyrus.bpmn/custom-src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeCustom.java b/org.eclipse.papyrus.bpmn/custom-src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeCustom.java
new file mode 100644
index 0000000..2c74298
--- /dev/null
+++ b/org.eclipse.papyrus.bpmn/custom-src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeCustom.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST and others.
+ * <p>
+ * 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
+ * <p>
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrus.bpmn.BPMNProfile.impl;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNAssociation;
+import org.eclipse.papyrus.bpmn.BPMNProfile.FlowNode;
+import org.eclipse.uml2.uml.ActivityEdge;
+import org.eclipse.uml2.uml.ActivityNode;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+
+public class FlowNodeCustom {
+
+ private FlowNodeCustom() {
+ }
+
+ /*
+ * from BPMN profile v1.0 §10.2.2.4, should return List<SequenceFlow>
+ */
+ public static EList<BPMNAssociation> getOutgoing(FlowNode flowNode) {
+
+ ActivityNode activityNode = flowNode.getBase_ActivityNode();
+ List<BPMNAssociation> list = new ArrayList<>();
+ if (activityNode != null) {
+ EList<ActivityEdge> outgoings = activityNode.getOutgoings();
+ list = outgoings.stream().map(e -> UMLUtil.getStereotypeApplication(e, BPMNAssociation.class))
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ }
+
+ return new BasicEList<>(list);
+ }
+
+ /*
+ * from BPMN profile v1.0 §10.2.2.4, should return List<SequenceFlow>
+ */
+ public static EList<BPMNAssociation> getIncoming(FlowNode flowNode) {
+
+ ActivityNode activityNode = flowNode.getBase_ActivityNode();
+ List<BPMNAssociation> list = new ArrayList<>();
+ if (activityNode != null) {
+ EList<ActivityEdge> incomings = activityNode.getIncomings();
+ list = incomings.stream().map(e -> UMLUtil.getStereotypeApplication(e, BPMNAssociation.class))
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ }
+
+ return new BasicEList<>(list);
+ }
+
+}
diff --git a/org.eclipse.papyrus.bpmn/model/BPMNProfile.ecore b/org.eclipse.papyrus.bpmn/model/BPMNProfile.ecore
index fd4a3b6..373c17a 100755
--- a/org.eclipse.papyrus.bpmn/model/BPMNProfile.ecore
+++ b/org.eclipse.papyrus.bpmn/model/BPMNProfile.ecore
@@ -44,11 +44,13 @@
<eClassifiers xsi:type="ecore:EClass" name="FlowNode" abstract="true" eSuperTypes="#//FlowElement">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="incoming" ordered="false" upperBound="-1"
- eType="#//SequenceFlow" eOpposite="#//SequenceFlow/targetRef">
+ eType="#//SequenceFlow" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//SequenceFlow/targetRef">
<eAnnotations source="redefines" references="#//BaseElement/incoming"/>
</contents>
<contents xsi:type="ecore:EReference" name="outgoing" ordered="false" upperBound="-1"
- eType="#//SequenceFlow" eOpposite="#//SequenceFlow/sourceRef">
+ eType="#//SequenceFlow" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//SequenceFlow/sourceRef">
<eAnnotations source="redefines" references="#//BaseElement/outgoing"/>
</contents>
</eAnnotations>
@@ -456,9 +458,11 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="conditionExpression" ordered="false"
eType="#//BPMNExpression"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceRef" ordered="false"
- lowerBound="1" eType="#//FlowNode" volatile="true"/>
+ lowerBound="1" eType="#//FlowNode" changeable="false" volatile="true" transient="true"
+ derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetRef" ordered="false"
- lowerBound="1" eType="#//FlowNode" volatile="true"/>
+ lowerBound="1" eType="#//FlowNode" changeable="false" volatile="true" transient="true"
+ derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BPMNExpression" eSuperTypes="#//BaseElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_OpaqueExpression"
diff --git a/org.eclipse.papyrus.bpmn/model/bpmn.profile.uml b/org.eclipse.papyrus.bpmn/model/bpmn.profile.uml
index e023433..e560871 100755
--- a/org.eclipse.papyrus.bpmn/model/bpmn.profile.uml
+++ b/org.eclipse.papyrus.bpmn/model/bpmn.profile.uml
@@ -12735,11 +12735,11 @@
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J9hK4NywEeaKmtNtvNnrBw"/>
<upperValue xmi:type="uml:LiteralInteger" xmi:id="_K0vGwNywEeaKmtNtvNnrBw" value="1"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-incoming" name="incoming" visibility="public" type="BPMNProfile-CoreStructure-Common-SequenceFlow" association="BPMNProfile-CoreStructure-Common-packagedElement-44" isderived="false">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-incoming" name="incoming" visibility="public" type="BPMNProfile-CoreStructure-Common-SequenceFlow" isReadOnly="true" isDerived="true" association="BPMNProfile-CoreStructure-Common-packagedElement-44" isderived="false">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-incoming-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-incoming-upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-outgoing" name="outgoing" visibility="public" type="BPMNProfile-CoreStructure-Common-SequenceFlow" association="BPMNProfile-CoreStructure-Common-packagedElement-45" isderived="false">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-outgoing" name="outgoing" visibility="public" type="BPMNProfile-CoreStructure-Common-SequenceFlow" isReadOnly="true" isDerived="true" association="BPMNProfile-CoreStructure-Common-packagedElement-45" isderived="false">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-outgoing-lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="BPMNProfile-CoreStructure-Common-FlowNode-outgoing-upperValue" value="*"/>
</ownedAttribute>
@@ -12924,8 +12924,8 @@
<ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-conditionExpression" name="conditionExpression" visibility="public" type="BPMNProfile-CoreStructure-Common-BPMNExpression" association="BPMNProfile-CoreStructure-Common-packagedElement-39" isderived="false">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-conditionExpression-lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-sourceRef" name="sourceRef" visibility="public" type="BPMNProfile-CoreStructure-Common-FlowNode" association="BPMNProfile-CoreStructure-Common-packagedElement-45" isderived="false"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-targetRef" name="targetRef" visibility="public" type="BPMNProfile-CoreStructure-Common-FlowNode" association="BPMNProfile-CoreStructure-Common-packagedElement-44" isderived="false"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-sourceRef" name="sourceRef" visibility="public" type="BPMNProfile-CoreStructure-Common-FlowNode" isReadOnly="true" isDerived="true" association="BPMNProfile-CoreStructure-Common-packagedElement-45" isderived="false"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="BPMNProfile-CoreStructure-Common-SequenceFlow-targetRef" name="targetRef" visibility="public" type="BPMNProfile-CoreStructure-Common-FlowNode" isReadOnly="true" isDerived="true" association="BPMNProfile-CoreStructure-Common-packagedElement-44" isderived="false"/>
<icon xmi:type="uml:Image" xmi:id="_8EYzYOmcEeSE8qC-7-3YgA" format="Papyrus" location="platform:/plugin/org.eclipse.papyrus.bpmn/icons/SequenceFlow.png">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mSNYsLJLEeW3evHeiuWSvw" source="image_papyrus">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mSP08LJLEeW3evHeiuWSvw" key="image_kind_key" value="icon"/>
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/SequenceFlow.java b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/SequenceFlow.java
index 70202ad..9e6eced 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/SequenceFlow.java
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/SequenceFlow.java
@@ -115,24 +115,13 @@
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Source Ref</em>' reference.
- * @see #setSourceRef(FlowNode)
* @see org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage#getSequenceFlow_SourceRef()
- * @model required="true" volatile="true" ordered="false"
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
* @generated
*/
FlowNode getSourceRef();
/**
- * Sets the value of the '{@link org.eclipse.papyrus.bpmn.BPMNProfile.SequenceFlow#getSourceRef <em>Source Ref</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Source Ref</em>' reference.
- * @see #getSourceRef()
- * @generated
- */
- void setSourceRef(FlowNode value);
-
- /**
* Returns the value of the '<em><b>Target Ref</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
@@ -141,24 +130,13 @@
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Ref</em>' reference.
- * @see #setTargetRef(FlowNode)
* @see org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage#getSequenceFlow_TargetRef()
- * @model required="true" volatile="true" ordered="false"
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
* @generated
*/
FlowNode getTargetRef();
/**
- * Sets the value of the '{@link org.eclipse.papyrus.bpmn.BPMNProfile.SequenceFlow#getTargetRef <em>Target Ref</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Target Ref</em>' reference.
- * @see #getTargetRef()
- * @generated
- */
- void setTargetRef(FlowNode value);
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfile.ecore b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfile.ecore
index 49923b5..66d6511 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfile.ecore
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfile.ecore
@@ -34,11 +34,13 @@
<eClassifiers xsi:type="ecore:EClass" name="FlowNode" abstract="true" eSuperTypes="#//FlowElement">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="incoming" ordered="false" upperBound="-1"
- eType="#//SequenceFlow" eOpposite="#//SequenceFlow/targetRef">
+ eType="#//SequenceFlow" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//SequenceFlow/targetRef">
<eAnnotations source="redefines" references="#//BaseElement/incoming"/>
</contents>
<contents xsi:type="ecore:EReference" name="outgoing" ordered="false" upperBound="-1"
- eType="#//SequenceFlow" eOpposite="#//SequenceFlow/sourceRef">
+ eType="#//SequenceFlow" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//SequenceFlow/sourceRef">
<eAnnotations source="redefines" references="#//BaseElement/outgoing"/>
</contents>
</eAnnotations>
@@ -326,9 +328,11 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="conditionExpression" ordered="false"
eType="#//BPMNExpression"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sourceRef" ordered="false"
- lowerBound="1" eType="#//FlowNode" volatile="true"/>
+ lowerBound="1" eType="#//FlowNode" changeable="false" volatile="true" transient="true"
+ derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="targetRef" ordered="false"
- lowerBound="1" eType="#//FlowNode" volatile="true"/>
+ lowerBound="1" eType="#//FlowNode" changeable="false" volatile="true" transient="true"
+ derived="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BPMNExpression" eSuperTypes="#//BaseElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="base_OpaqueExpression"
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfilePackageImpl.java b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfilePackageImpl.java
index a999218..a60f4ef 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfilePackageImpl.java
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/BPMNProfilePackageImpl.java
@@ -15,12 +15,14 @@
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfileFactory;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage;
import org.eclipse.papyrus.bpmn.BPMNProfile.util.BPMNProfileValidator;
+import org.eclipse.uml2.types.TypesPackage;
import org.eclipse.uml2.uml.UMLPackage;
/**
@@ -1048,6 +1050,8 @@
isInited = true;
// Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
UMLPackage.eINSTANCE.eClass();
// Load packages
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeImpl.java b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeImpl.java
index fa5bfbc..fae9dfa 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeImpl.java
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/FlowNodeImpl.java
@@ -3,17 +3,13 @@
package org.eclipse.papyrus.bpmn.BPMNProfile.impl;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNAssociation;
import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage;
import org.eclipse.papyrus.bpmn.BPMNProfile.FlowNode;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SequenceFlow;
import org.eclipse.uml2.uml.ActivityNode;
/**
@@ -102,14 +98,11 @@
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public EList<BPMNAssociation> getIncoming() {
- if (incoming == null) {
- incoming = new EObjectWithInverseResolvingEList<BPMNAssociation>(SequenceFlow.class, this, BPMNProfilePackage.FLOW_NODE__INCOMING, BPMNProfilePackage.BPMN_ASSOCIATION__TARGET_REF);
- }
- return incoming;
+ return FlowNodeCustom.getIncoming(this);
}
/**
@@ -118,20 +111,17 @@
* @generated
*/
public boolean isSetIncoming() {
- return incoming != null && !incoming.isEmpty();
+ return !getIncoming().isEmpty();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public EList<BPMNAssociation> getOutgoing() {
- if (outgoing == null) {
- outgoing = new EObjectWithInverseResolvingEList<BPMNAssociation>(SequenceFlow.class, this, BPMNProfilePackage.FLOW_NODE__OUTGOING, BPMNProfilePackage.BPMN_ASSOCIATION__SOURCE_REF);
- }
- return outgoing;
+ return FlowNodeCustom.getOutgoing(this);
}
/**
@@ -140,40 +130,7 @@
* @generated
*/
public boolean isSetOutgoing() {
- return outgoing != null && !outgoing.isEmpty();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case BPMNProfilePackage.FLOW_NODE__INCOMING:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncoming()).basicAdd(otherEnd, msgs);
- case BPMNProfilePackage.FLOW_NODE__OUTGOING:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoing()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case BPMNProfilePackage.FLOW_NODE__INCOMING:
- return ((InternalEList<?>)getIncoming()).basicRemove(otherEnd, msgs);
- case BPMNProfilePackage.FLOW_NODE__OUTGOING:
- return ((InternalEList<?>)getOutgoing()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
+ return !getOutgoing().isEmpty();
}
/**
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/SequenceFlowImpl.java b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/SequenceFlowImpl.java
index fa96e49..65fd427 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/SequenceFlowImpl.java
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/impl/SequenceFlowImpl.java
@@ -220,17 +220,6 @@
* <!-- end-user-doc -->
* @generated
*/
- public void setSourceRef(FlowNode newSourceRef) {
- // TODO: implement this method to set the 'Source Ref' reference
- // Ensure that you remove @generated or mark it @generated NOT
- throw new UnsupportedOperationException();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public FlowNode getTargetRef() {
FlowNode targetRef = basicGetTargetRef();
return targetRef != null && targetRef.eIsProxy() ? (FlowNode)eResolveProxy((InternalEObject)targetRef) : targetRef;
@@ -250,17 +239,6 @@
* <!-- end-user-doc -->
* @generated
*/
- public void setTargetRef(FlowNode newTargetRef) {
- // TODO: implement this method to set the 'Target Ref' reference
- // Ensure that you remove @generated or mark it @generated NOT
- throw new UnsupportedOperationException();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public boolean SequenceFlowconditionExpression(DiagnosticChain diagnostics, Map<Object, Object> context) {
// TODO: implement this method
// -> specify the condition that violates the invariant
@@ -269,12 +247,12 @@
if (false) {
if (diagnostics != null) {
diagnostics.add
- (new BasicDiagnostic
- (Diagnostic.ERROR,
- BPMNProfileValidator.DIAGNOSTIC_SOURCE,
- BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWCONDITION_EXPRESSION,
- EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowconditionExpression", EObjectValidator.getObjectLabel(this, context) }),
- new Object [] { this }));
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ BPMNProfileValidator.DIAGNOSTIC_SOURCE,
+ BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWCONDITION_EXPRESSION,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowconditionExpression", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
}
return false;
}
@@ -294,12 +272,12 @@
if (false) {
if (diagnostics != null) {
diagnostics.add
- (new BasicDiagnostic
- (Diagnostic.ERROR,
- BPMNProfileValidator.DIAGNOSTIC_SOURCE,
- BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWSOURCE_REF,
- EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowsourceRef", EObjectValidator.getObjectLabel(this, context) }),
- new Object [] { this }));
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ BPMNProfileValidator.DIAGNOSTIC_SOURCE,
+ BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWSOURCE_REF,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowsourceRef", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
}
return false;
}
@@ -319,12 +297,12 @@
if (false) {
if (diagnostics != null) {
diagnostics.add
- (new BasicDiagnostic
- (Diagnostic.ERROR,
- BPMNProfileValidator.DIAGNOSTIC_SOURCE,
- BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWTARGET_REF,
- EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowtargetRef", EObjectValidator.getObjectLabel(this, context) }),
- new Object [] { this }));
+ (new BasicDiagnostic
+ (Diagnostic.ERROR,
+ BPMNProfileValidator.DIAGNOSTIC_SOURCE,
+ BPMNProfileValidator.SEQUENCE_FLOW__SEQUENCE_FLOWTARGET_REF,
+ EcorePlugin.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "SequenceFlowtargetRef", EObjectValidator.getObjectLabel(this, context) }),
+ new Object [] { this }));
}
return false;
}
@@ -339,20 +317,20 @@
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
- case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
- if (resolve) return getBase_ControlFlow();
- return basicGetBase_ControlFlow();
- case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
- return isImmediate();
- case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
- if (resolve) return getConditionExpression();
- return basicGetConditionExpression();
- case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
- if (resolve) return getSourceRef();
- return basicGetSourceRef();
- case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
- if (resolve) return getTargetRef();
- return basicGetTargetRef();
+ case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
+ if (resolve) return getBase_ControlFlow();
+ return basicGetBase_ControlFlow();
+ case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
+ return isImmediate();
+ case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
+ if (resolve) return getConditionExpression();
+ return basicGetConditionExpression();
+ case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
+ if (resolve) return getSourceRef();
+ return basicGetSourceRef();
+ case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
+ if (resolve) return getTargetRef();
+ return basicGetTargetRef();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -365,21 +343,15 @@
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
- case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
- setBase_ControlFlow((ControlFlow)newValue);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
- setIsImmediate((Boolean)newValue);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
- setConditionExpression((BPMNExpression)newValue);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
- setSourceRef((FlowNode)newValue);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
- setTargetRef((FlowNode)newValue);
- return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
+ setBase_ControlFlow((ControlFlow)newValue);
+ return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
+ setIsImmediate((Boolean)newValue);
+ return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
+ setConditionExpression((BPMNExpression)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -392,21 +364,15 @@
@Override
public void eUnset(int featureID) {
switch (featureID) {
- case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
- setBase_ControlFlow((ControlFlow)null);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
- setIsImmediate(IS_IMMEDIATE_EDEFAULT);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
- setConditionExpression((BPMNExpression)null);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
- setSourceRef((FlowNode)null);
- return;
- case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
- setTargetRef((FlowNode)null);
- return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
+ setBase_ControlFlow((ControlFlow)null);
+ return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
+ setIsImmediate(IS_IMMEDIATE_EDEFAULT);
+ return;
+ case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
+ setConditionExpression((BPMNExpression)null);
+ return;
}
super.eUnset(featureID);
}
@@ -419,16 +385,16 @@
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
- case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
- return base_ControlFlow != null;
- case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
- return isImmediate != IS_IMMEDIATE_EDEFAULT;
- case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
- return conditionExpression != null;
- case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
- return basicGetSourceRef() != null;
- case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
- return basicGetTargetRef() != null;
+ case BPMNProfilePackage.SEQUENCE_FLOW__BASE_CONTROL_FLOW:
+ return base_ControlFlow != null;
+ case BPMNProfilePackage.SEQUENCE_FLOW__IS_IMMEDIATE:
+ return isImmediate != IS_IMMEDIATE_EDEFAULT;
+ case BPMNProfilePackage.SEQUENCE_FLOW__CONDITION_EXPRESSION:
+ return conditionExpression != null;
+ case BPMNProfilePackage.SEQUENCE_FLOW__SOURCE_REF:
+ return basicGetSourceRef() != null;
+ case BPMNProfilePackage.SEQUENCE_FLOW__TARGET_REF:
+ return basicGetTargetRef() != null;
}
return super.eIsSet(featureID);
}
@@ -442,12 +408,12 @@
@SuppressWarnings("unchecked")
public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
switch (operationID) {
- case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWCONDITION_EXPRESSION__DIAGNOSTICCHAIN_MAP:
- return SequenceFlowconditionExpression((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
- case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWSOURCE_REF__DIAGNOSTICCHAIN_MAP:
- return SequenceFlowsourceRef((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
- case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWTARGET_REF__DIAGNOSTICCHAIN_MAP:
- return SequenceFlowtargetRef((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWCONDITION_EXPRESSION__DIAGNOSTICCHAIN_MAP:
+ return SequenceFlowconditionExpression((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWSOURCE_REF__DIAGNOSTICCHAIN_MAP:
+ return SequenceFlowsourceRef((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ case BPMNProfilePackage.SEQUENCE_FLOW___SEQUENCE_FLOWTARGET_REF__DIAGNOSTICCHAIN_MAP:
+ return SequenceFlowtargetRef((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
}
return super.eInvoke(operationID, arguments);
}
diff --git a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/util/BPMNProfileSwitch.java b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/util/BPMNProfileSwitch.java
index d571606..4980994 100755
--- a/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/util/BPMNProfileSwitch.java
+++ b/org.eclipse.papyrus.bpmn/src/org/eclipse/papyrus/bpmn/BPMNProfile/util/BPMNProfileSwitch.java
@@ -5,136 +5,6 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.papyrus.bpmn.BPMNProfile.AdHocSubProcess;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Assignment;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Auditing;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNActivity;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNArtifact;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNCollaboration;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNExpression;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNExtension;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNInterface;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNMessage;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNOperation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProcess;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProfilePackage;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNProperty;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNRelationship;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BPMNSignal;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BaseElement;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BoundaryEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.BusinessRuleTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CallActivity;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CallConversation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CallableElement;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CancelEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CatchEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Category;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CategoryValue;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CompensateEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ComplexBehaviorDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ComplexGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ConditionalEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Conversation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ConversationLink;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ConversationNode;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CorrelationKey;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CorrelationProperty;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CorrelationPropertyBinding;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CorrelationPropertyRetrievalExpression;
-import org.eclipse.papyrus.bpmn.BPMNProfile.CorrelationSubscription;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataInput;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataInputAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataObject;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataObjectReference;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataOutput;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataOutputAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataState;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataStore;
-import org.eclipse.papyrus.bpmn.BPMNProfile.DataStoreReference;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Definitions;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Documentation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.EndEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ErrorEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Escalation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.EscalationEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.EventBasedGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.EventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ExclusiveGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ExtensionAttributeDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ExtensionAttributeValue;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ExtensionDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.FlowElement;
-import org.eclipse.papyrus.bpmn.BPMNProfile.FlowElementsContainer;
-import org.eclipse.papyrus.bpmn.BPMNProfile.FlowNode;
-import org.eclipse.papyrus.bpmn.BPMNProfile.FormalExpression;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Gateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalBusinessRuleTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalConversation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalManualTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalScriptTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.GlobalUserTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Group;
-import org.eclipse.papyrus.bpmn.BPMNProfile.HumanPerformer;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ImplicitThrowEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Import;
-import org.eclipse.papyrus.bpmn.BPMNProfile.InclusiveGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.InputOutputBinding;
-import org.eclipse.papyrus.bpmn.BPMNProfile.InputOutputSpecification;
-import org.eclipse.papyrus.bpmn.BPMNProfile.InputSet;
-import org.eclipse.papyrus.bpmn.BPMNProfile.InteractionNode;
-import org.eclipse.papyrus.bpmn.BPMNProfile.IntermediateCatchEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.IntermediateThrowEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ItemAwareElement;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ItemDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Lane;
-import org.eclipse.papyrus.bpmn.BPMNProfile.LaneSet;
-import org.eclipse.papyrus.bpmn.BPMNProfile.LinkEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.LoopCharacteristics;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ManualTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.MessageEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.MessageFlow;
-import org.eclipse.papyrus.bpmn.BPMNProfile.MessageFlowAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Monitoring;
-import org.eclipse.papyrus.bpmn.BPMNProfile.MultiInstanceLoopCharacteristics;
-import org.eclipse.papyrus.bpmn.BPMNProfile.NonExclusiveGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.OutputSet;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ParallelGateway;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Participant;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ParticipantAssociation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ParticipantMultiplicity;
-import org.eclipse.papyrus.bpmn.BPMNProfile.PartnerEntity;
-import org.eclipse.papyrus.bpmn.BPMNProfile.PartnerRole;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Performer;
-import org.eclipse.papyrus.bpmn.BPMNProfile.PotentialOwner;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ReceiveTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Rendering;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Resource;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ResourceAssignmentExpression;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ResourceParameter;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ResourceParameterBinding;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ResourceRole;
-import org.eclipse.papyrus.bpmn.BPMNProfile.RootElement;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ScriptTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SendTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SequenceFlow;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ServiceTask;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SignalEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.StandardLoopCharacteristics;
-import org.eclipse.papyrus.bpmn.BPMNProfile.StartEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SubConversation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.SubProcess;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Task;
-import org.eclipse.papyrus.bpmn.BPMNProfile.TerminateEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.TextAnnotation;
-import org.eclipse.papyrus.bpmn.BPMNProfile.ThrowEvent;
-import org.eclipse.papyrus.bpmn.BPMNProfile.TimerEventDefinition;
-import org.eclipse.papyrus.bpmn.BPMNProfile.Transaction;
-import org.eclipse.papyrus.bpmn.BPMNProfile.UserTask;
import org.eclipse.papyrus.bpmn.BPMNProfile.*;
/**