summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Nikles2012-07-17 12:10:58 (EDT)
committerSimon Nikles2012-07-17 12:10:58 (EDT)
commitd184b9c14d732f0d65fcf869eef091c4d85815f1 (patch)
tree338776f16e5cca9a2ec66ca9eb787ee833542359
parent7c5ecbc1b8f67be85381554c35b35ccae5e59868 (diff)
downloadorg.eclipse.stardust.ide-d184b9c14d732f0d65fcf869eef091c4d85815f1.zip
org.eclipse.stardust.ide-d184b9c14d732f0d65fcf869eef091c4d85815f1.tar.gz
org.eclipse.stardust.ide-d184b9c14d732f0d65fcf869eef091c4d85815f1.tar.bz2
Initial commit: BPMN2-model project (stardust extensionrefs/changes/19/6819/1
definitions) and BPMN2-transformation project (bpmn2stardust transformation). Change-Id: I6d98c82429723a0c0759526f986aebc893826fe6
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/.classpath9
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/.project23
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/pom.xml59
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.genmodel76
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.xsd208
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/schema/sdbpmn.ecore466
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Dialect.java24
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/TransformationControl.java517
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Transformator.java79
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDL.java540
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDLExtension.java91
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/DialectCarnotXPDL.java32
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/util/Bpmn2ProxyResolver.java43
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java320
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/log4j.properties33
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn75
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Lane.bpmn47
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerAndPartnerEntityOrg.bpmn206
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerFromPoolAndLane.bpmn194
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Pool.bpmn36
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventMessage.bpmn46
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventNone.bpmn45
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn48
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTask.bpmn49
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/XORGatewaysSingle.bpmn325
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMN20.xsd37
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMNDI.xsd100
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DC.xsd29
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DI.xsd100
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/Semantic.xsd1562
-rw-r--r--model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/unmod/XORGatewaysSingle.bpmn325
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/.classpath9
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/.project23
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/pom.xml71
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/extension/ExtensionHelper.java224
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/input/BPMNModelImporter.java105
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/output/BPMNModelExporter.java37
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/reader/ModelInfo.java43
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/DocumentRoot.java603
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnFactory.java145
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnPackage.java1820
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustAttributesType.java49
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustMessageStartEventType.java124
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustModelType.java235
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSeqenceFlowType.java83
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java56
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustStartEventType.java55
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSubprocessType.java56
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTimerStartEventType.java55
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java80
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustActivity.java120
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustCommon.java55
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/DocumentRootImpl.java1060
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnFactoryImpl.java220
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnPackageImpl.java1288
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustAttributesTypeImpl.java157
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustMessageStartEventTypeImpl.java331
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustModelTypeImpl.java475
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSeqenceFlowTypeImpl.java201
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustServiceTaskTypeImpl.java166
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustStartEventTypeImpl.java180
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSubprocessTypeImpl.java166
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustTimerStartEventTypeImpl.java180
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustUserTaskTypeImpl.java200
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/TStardustActivityImpl.java297
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/TStardustCommonImpl.java167
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/util/SdbpmnAdapterFactory.java322
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/util/SdbpmnResourceFactoryImpl.java56
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/util/SdbpmnResourceImpl.java32
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/util/SdbpmnSwitch.java368
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/util/SdbpmnXMLProcessor.java54
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/input/BPMNModelImporterTest.java39
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/output/BPMNModelExporterTest.java57
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/java/org/eclipse/stardust/test/model/bpmn2/sdbpmn/BpmnExtensionTest.java149
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/resources/models/simple_import_test.bpmn122
-rw-r--r--model/org.eclipse.stardust.model.bpmn2/src/test/resources/models/tmp0
76 files changed, 16079 insertions, 0 deletions
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/.classpath b/model/org.eclipse.stardust.model.bpmn2.transform/.classpath
new file mode 100644
index 0000000..bb6db0a
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/.project b/model/org.eclipse.stardust.model.bpmn2.transform/.project
new file mode 100644
index 0000000..ece05c8
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.stardust.model.bpmn2.transform</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/pom.xml b/model/org.eclipse.stardust.model.bpmn2.transform/pom.xml
new file mode 100644
index 0000000..e1e6428
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/pom.xml
@@ -0,0 +1,59 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>org.eclipse.stardust.model.bpmn2.transform</artifactId>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <artifactId>org.eclipse.stardust.model.bpmn2</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <artifactId>org.eclipse.stardust.model.xpdl</artifactId>
+ <version>9.9.9-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <artifactId>org.eclipse.stardust.model.xpdl.builder</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>emf-ecore</artifactId>
+ <version>2.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>emf-ecore-xmi</artifactId>
+ <version>2.4.2</version>
+ </dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.eclipse.emf</groupId> -->
+<!-- <artifactId>org.eclipse.emf.ecore.xmi</artifactId> -->
+<!-- <version>2.5.0.v20100521-1846</version> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.eclipse.emf</groupId> -->
+<!-- <artifactId>org.eclipse.emf.common</artifactId> -->
+<!-- <version>2.6.0.v20100614-1136</version> -->
+<!-- </dependency> -->
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.17</version>
+ </dependency>
+
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.genmodel b/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.genmodel
new file mode 100644
index 0000000..99e5878
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.genmodel
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/stardust-bpmn2/src"
+ modelPluginID="stardust-bpmn2" modelName="StardustBPMN20" importerID="org.eclipse.xsd.ecore.importer"
+ complianceLevel="5.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.genmodel#//carnot platform:/plugin/org.eclipse.stardust.model.xpdl/model/xpdl.genmodel#//xpdl platform:/plugin/org.eclipse.stardust.model.xpdl/model/xpdl.genmodel#//xpdl/extensions platform:/plugin/org.eclipse.xsd/model/XSD.genmodel#//xsd">
+ <foreignModel>StardustBPMN20.xsd</foreignModel>
+ <genPackages prefix="Sdbpmn" basePackage="org.eclipse.stardust.bpmn20" resource="XML"
+ disposableProviderFactory="true" ecorePackage="sdbpmn.ecore#/">
+ <genClasses ecoreClass="sdbpmn.ecore#//DocumentRoot">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/mixed"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/xMLNSPrefixMap"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/xSISchemaLocation"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustActivity"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustAttributes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustCommon"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustMessageStartEvent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustModel"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustSeqenceFlow"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustServiceTask"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustStartEvent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustSubprocess"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustTimerStartEvent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//DocumentRoot/stardustUserTask"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/author"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/carnotVersion"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/created"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/modelOID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/oid"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//DocumentRoot/vendor"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustAttributesType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustAttributesType/attributeType"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustMessageStartEventType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustMessageStartEventType/stardustAttributes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustMessageStartEventType/accessPoint"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustMessageStartEventType/parameterMapping"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustMessageStartEventType/type"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustModelType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/author"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/carnotVersion"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/created"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/modelOID"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/oid"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustModelType/vendor"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustSeqenceFlowType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustSeqenceFlowType/forkOnTraversal"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustServiceTaskType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustServiceTaskType/application"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustStartEventType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustStartEventType/stardustAttributes"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustSubprocessType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustSubprocessType/implementationProcess"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustTimerStartEventType">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//StardustTimerStartEventType/stardustAttributes"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//StardustUserTaskType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//StardustUserTaskType/allowsAbortByPerformer"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//TStardustActivity">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//TStardustActivity/eventHandler"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sdbpmn.ecore#//TStardustActivity/dataMapping"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//TStardustActivity/hibernateOnCreation"/>
+ </genClasses>
+ <genClasses ecoreClass="sdbpmn.ecore#//TStardustCommon">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sdbpmn.ecore#//TStardustCommon/elementOid"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.xsd
new file mode 100644
index 0000000..ef4436a
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/schema/StardustBPMN20.xsd
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:carnot="http://www.carnot.ag/workflowmodel/3.1"
+ xmlns:sdbpmn="http://www.eclipse.org/stardust/bpmn20/sdbpmn" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ targetNamespace="http://www.eclipse.org/stardust/bpmn20/sdbpmn">
+ <import namespace="http://www.carnot.ag/workflowmodel/3.1" schemaLocation="CarnotWorkflowModelXML.xsd" />
+
+ <xsd:attribute name="author" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The name of the user editing this model last.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="carnotVersion" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The software version used to create and edit this model. Opening this
+ model in another version of the software may require an explicit
+ conversion.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="created" type="xsd:dateTime">
+ <xsd:annotation>
+ <xsd:documentation>The date this model was created.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="modelOID" type="xsd:integer">
+ <xsd:annotation>
+ <xsd:documentation>
+ A 32-bit number assigned to the model during deployment to an audit
+ trail. This number may be changed if the model is deployed to different
+ audit trails or even to the same audit trail multiple times.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="oid" type="xsd:long">
+ <xsd:annotation>
+ <xsd:documentation>
+ A 64-bit number uniquely identifying the model in the model repository.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="vendor" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The vendor of the software used to create and edit this model. Usually
+ this will be "carnot".
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+
+ <xsd:attributeGroup name="ModelAttributes" id="ModelAttributes">
+ <xsd:attribute ref="sdbpmn:oid"></xsd:attribute>
+ <xsd:attribute ref="sdbpmn:modelOID"></xsd:attribute>
+ <xsd:attribute ref="sdbpmn:author"></xsd:attribute>
+ <xsd:attribute ref="sdbpmn:created"></xsd:attribute>
+ <xsd:attribute ref="sdbpmn:carnotVersion"></xsd:attribute>
+ <xsd:attribute ref="sdbpmn:vendor"></xsd:attribute>
+ </xsd:attributeGroup>
+
+ <xsd:element name="StardustModel">
+ <xsd:complexType>
+ <xsd:attributeGroup ref="sdbpmn:ModelAttributes"></xsd:attributeGroup>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="StardustCommon" type="sdbpmn:tStardustCommon" />
+ <xsd:complexType name="tStardustCommon">
+ <xsd:attribute name="elementOid" type="xsd:string" use="required" />
+ </xsd:complexType>
+
+ <xsd:element name="StardustAttributes">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="carnot:AttributeType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="StardustTimerStartEvent">
+ <xsd:complexType>
+ <xsd:sequence>
+ <!-- <xsd:element name="ManualStartPerformer" type="carnot:AttributeType" maxOccurs="1"></xsd:element> -->
+ <xsd:element ref="sdbpmn:StardustAttributes" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ </xsd:element>
+ <xsd:element name="StardustStartEvent">
+ <xsd:complexType>
+ <xsd:sequence>
+ <!-- <xsd:element name="ManualStartPerformer" type="carnot:AttributeType" maxOccurs="1"></xsd:element> -->
+ <xsd:element ref="sdbpmn:StardustAttributes" maxOccurs="1" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ </xsd:element>
+
+ <xsd:element name="StardustMessageStartEvent">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="sdbpmn:StardustAttributes" maxOccurs="1" />
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="accessPoint" type="carnot:AccessPointType">
+ <xsd:annotation>
+ <xsd:documentation>The list of access points.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameterMapping" type="carnot:ParameterMappingType">
+ <xsd:annotation>
+ <xsd:documentation>The list of parameter mappings.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The model id of one of the previously defined triggerType elements.
+ Actual implementation of a message start event: i.e. jms or e-mail
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:element name="StardustSeqenceFlow">
+ <xsd:complexType>
+ <xsd:attribute default="false" name="forkOnTraversal" type="xsd:boolean" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="StardustActivity" type="sdbpmn:tStardustActivity" />
+ <xsd:complexType name="tStardustActivity">
+ <xsd:complexContent>
+ <xsd:extension base="sdbpmn:tStardustCommon">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="eventHandler" type="carnot:EventHandlerType">
+ <xsd:annotation>
+ <xsd:documentation>The list of event handlers defined for this model element.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="dataMapping" type="carnot:DataMappingType">
+ <xsd:annotation>
+ <xsd:documentation>The list of data mappings.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="hibernateOnCreation" type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation>
+ Determines whether an activity instance is hibernated immediately after beeing created.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="StardustSubprocess">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="sdbpmn:tStardustActivity">
+ <xsd:attribute name="implementationProcess" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The model id of the subprocess implementing the activity when the
+ attribute "implementation" is set to "Subprocess".
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="StardustUserTask">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="sdbpmn:tStardustActivity">
+ <xsd:attribute name="allowsAbortByPerformer" type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation>Determines whether the activity is allowed to be aborted.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="StardustServiceTask">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="sdbpmn:tStardustActivity">
+ <xsd:attribute name="application" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>
+ The model id of the application to execute when the attribute
+ "implementation" is set to "Application".
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</schema>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/schema/sdbpmn.ecore b/model/org.eclipse.stardust.model.bpmn2.transform/schema/sdbpmn.ecore
new file mode 100644
index 0000000..8ca9b19
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/schema/sdbpmn.ecore
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sdbpmn"
+ nsURI="http://www.eclipse.org/stardust/bpmn20/sdbpmn" nsPrefix="sdbpmn">
+ <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value=""/>
+ <details key="kind" value="mixed"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="elementWildcard"/>
+ <details key="name" value=":mixed"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xmlns:prefix"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ transient="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="xsi:schemaLocation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustActivity" upperBound="-2"
+ eType="#//TStardustActivity" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustActivity"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustAttributes" upperBound="-2"
+ eType="#//StardustAttributesType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustAttributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustCommon" upperBound="-2"
+ eType="#//TStardustCommon" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustCommon"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustMessageStartEvent"
+ upperBound="-2" eType="#//StardustMessageStartEventType" volatile="true" transient="true"
+ derived="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustMessageStartEvent"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustModel" upperBound="-2"
+ eType="#//StardustModelType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustModel"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustSeqenceFlow" upperBound="-2"
+ eType="#//StardustSeqenceFlowType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustSeqenceFlow"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustServiceTask" upperBound="-2"
+ eType="#//StardustServiceTaskType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustServiceTask"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustStartEvent" upperBound="-2"
+ eType="#//StardustStartEventType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustStartEvent"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustSubprocess" upperBound="-2"
+ eType="#//StardustSubprocessType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustSubprocess"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustTimerStartEvent"
+ upperBound="-2" eType="#//StardustTimerStartEventType" volatile="true" transient="true"
+ derived="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustTimerStartEvent"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustUserTask" upperBound="-2"
+ eType="#//StardustUserTaskType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustUserTask"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The name of the user editing this model last.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="author"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="carnotVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The software version used to create and edit this model. Opening this&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;model in another version of the software may require an explicit&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;conversion.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="carnotVersion"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="created" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DateTime">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The date this model was created."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="created"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelOID" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Integer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;A 32-bit number assigned to the model during deployment to an audit&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;trail. This number may be changed if the model is deployed to different&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;audit trails or even to the same audit trail multiple times.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="modelOID"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="oid" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Long"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;A 64-bit number uniquely identifying the model in the model repository.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="oid"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The vendor of the software used to create and edit this model. Usually&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;this will be &quot;carnot&quot;.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="vendor"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustAttributesType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustAttributes_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributeType" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.ecore#//AttributeType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="AttributeType"/>
+ <details key="namespace" value="http://www.carnot.ag/workflowmodel/3.1"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustMessageStartEventType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustMessageStartEvent_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustAttributes" lowerBound="1"
+ eType="#//StardustAttributesType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustAttributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="accessPoint" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.ecore#//AccessPointType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The list of access points."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="accessPoint"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterMapping" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.ecore#//ParameterMappingType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The list of parameter mappings."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="parameterMapping"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA; The model id of one of the previously defined triggerType elements.&#xD;&#xA; Actual implementation of a message start event: i.e. jms or e-mail&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustModelType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustModel_._type"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The name of the user editing this model last.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="author"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="carnotVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The software version used to create and edit this model. Opening this&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;model in another version of the software may require an explicit&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;conversion.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="carnotVersion"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="created" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DateTime">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The date this model was created."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="created"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelOID" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Integer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;A 32-bit number assigned to the model during deployment to an audit&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;trail. This number may be changed if the model is deployed to different&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;audit trails or even to the same audit trail multiple times.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="modelOID"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="oid" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Long"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;A 64-bit number uniquely identifying the model in the model repository.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="oid"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;The vendor of the software used to create and edit this model. Usually&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;this will be &quot;carnot&quot;.&#xD;&#xA; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="vendor"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustSeqenceFlowType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustSeqenceFlow_._type"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="forkOnTraversal" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ defaultValueLiteral="false" unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="forkOnTraversal"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustServiceTaskType" eSuperTypes="#//TStardustActivity">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustServiceTask_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="application" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The model id of the application to execute when the attribute&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&quot;implementation&quot; is set to &quot;Application&quot;.&#xD;&#xA;&#x9;&#x9;&#x9; "/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="application"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustStartEventType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustStartEvent_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustAttributes" lowerBound="1"
+ eType="#//StardustAttributesType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustAttributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustSubprocessType" eSuperTypes="#//TStardustActivity">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustSubprocess_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationProcess"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;The model id of the subprocess implementing the activity when the&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;attribute &quot;implementation&quot; is set to &quot;Subprocess&quot;.&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="implementationProcess"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustTimerStartEventType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustTimerStartEvent_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stardustAttributes" lowerBound="1"
+ eType="#//StardustAttributesType" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="StardustAttributes"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StardustUserTaskType" eSuperTypes="#//TStardustActivity">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="StardustUserTask_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="allowsAbortByPerformer"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines whether the activity is allowed to be aborted."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="allowsAbortByPerformer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TStardustActivity" eSuperTypes="#//TStardustCommon">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="tStardustActivity"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eventHandler" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.ecore#//EventHandlerType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The list of event handlers defined for this model element."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="eventHandler"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="dataMapping" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stardust.model.xpdl/model/carnot.ecore#//DataMappingType"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The list of data mappings."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="dataMapping"/>
+ <details key="namespace" value="##targetNamespace"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hibernateOnCreation" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Determines whether an activity instance is hibernated immediately after beeing created.&#xD;&#xA; &#x9;&#x9;&#x9;"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="hibernateOnCreation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TStardustCommon">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="tStardustCommon"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementOid" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="elementOid"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Dialect.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Dialect.java
new file mode 100644
index 0000000..69bafca
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Dialect.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform;
+
+
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public interface Dialect {
+
+ public Transformator getTransformator();
+ public String getDialectName();
+
+} \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/TransformationControl.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/TransformationControl.java
new file mode 100644
index 0000000..3cf4d06
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/TransformationControl.java
@@ -0,0 +1,517 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.bpmn2.Activity;
+import org.eclipse.bpmn2.AdHocSubProcess;
+import org.eclipse.bpmn2.Artifact;
+import org.eclipse.bpmn2.BoundaryEvent;
+import org.eclipse.bpmn2.BusinessRuleTask;
+import org.eclipse.bpmn2.CallActivity;
+import org.eclipse.bpmn2.CallableElement;
+import org.eclipse.bpmn2.Category;
+import org.eclipse.bpmn2.ChoreographyActivity;
+import org.eclipse.bpmn2.Collaboration;
+import org.eclipse.bpmn2.ComplexGateway;
+import org.eclipse.bpmn2.CorrelationProperty;
+import org.eclipse.bpmn2.DataObject;
+import org.eclipse.bpmn2.DataObjectReference;
+import org.eclipse.bpmn2.DataStore;
+import org.eclipse.bpmn2.DataStoreReference;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.EndEvent;
+import org.eclipse.bpmn2.EndPoint;
+import org.eclipse.bpmn2.Error;
+import org.eclipse.bpmn2.Escalation;
+import org.eclipse.bpmn2.Event;
+import org.eclipse.bpmn2.EventBasedGateway;
+import org.eclipse.bpmn2.EventDefinition;
+import org.eclipse.bpmn2.ExclusiveGateway;
+import org.eclipse.bpmn2.FlowElement;
+import org.eclipse.bpmn2.FlowElementsContainer;
+import org.eclipse.bpmn2.FlowNode;
+import org.eclipse.bpmn2.Gateway;
+import org.eclipse.bpmn2.GlobalTask;
+import org.eclipse.bpmn2.ImplicitThrowEvent;
+import org.eclipse.bpmn2.InclusiveGateway;
+import org.eclipse.bpmn2.Interface;
+import org.eclipse.bpmn2.IntermediateCatchEvent;
+import org.eclipse.bpmn2.IntermediateThrowEvent;
+import org.eclipse.bpmn2.ItemDefinition;
+import org.eclipse.bpmn2.Lane;
+import org.eclipse.bpmn2.LaneSet;
+import org.eclipse.bpmn2.ManualTask;
+import org.eclipse.bpmn2.Message;
+import org.eclipse.bpmn2.ParallelGateway;
+import org.eclipse.bpmn2.Participant;
+import org.eclipse.bpmn2.PartnerEntity;
+import org.eclipse.bpmn2.PartnerRole;
+import org.eclipse.bpmn2.Process;
+import org.eclipse.bpmn2.ReceiveTask;
+import org.eclipse.bpmn2.Resource;
+import org.eclipse.bpmn2.RootElement;
+import org.eclipse.bpmn2.ScriptTask;
+import org.eclipse.bpmn2.SendTask;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.ServiceTask;
+import org.eclipse.bpmn2.Signal;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.SubProcess;
+import org.eclipse.bpmn2.Task;
+import org.eclipse.bpmn2.Transaction;
+import org.eclipse.bpmn2.UserTask;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class TransformationControl {
+
+ private static final String NOT_SUPPORTED = ": element transformation not supported\n";
+ private final Dialect dialect;
+ private Transformator transf;
+ private String processingInfo = "";
+ private Logger log;
+
+ public static TransformationControl getInstance(Dialect dialect) {
+ return new TransformationControl(dialect);
+ }
+
+ private TransformationControl(Dialect dialect) {
+ this.dialect = dialect;
+ log = Logger.getLogger(this.getClass());
+ }
+
+ public String transformToTarget(Definitions definitions, String outputFile) {
+ processingInfo = "";
+ transf = dialect.getTransformator();
+ processBpmn(definitions, transf);
+ transf.serializeTargetModel(outputFile);
+
+ for (String msg : transf.getTransformationMessages()) {
+ log.info(msg);
+ }
+ log.info(processingInfo);
+ return processingInfo;
+ }
+
+ public Object getTargetModel() {
+ return transf.getTargetModel();
+ }
+
+ private void processBpmn(Definitions definitions, Transformator transf) {
+
+ transf.createTargetModel(definitions);
+
+ List<RootElement> roots = definitions.getRootElements();
+ List<Collaboration> collabs = new ArrayList<Collaboration>();
+
+ for (RootElement root : roots) {
+ if (root instanceof CallableElement) {
+ if (root instanceof Process) {
+ processProcess((Process)root);
+ } else if (root instanceof GlobalTask) {
+ processGlobalTask((GlobalTask)root);
+ }
+ } else if (root instanceof Category) {
+ processCategory((Category)root);
+ } else if (root instanceof CorrelationProperty) {
+ processCorrelationProperty((CorrelationProperty)root);
+ } else if (root instanceof DataStore) {
+ processDataStore((DataStore)root);
+ } else if (root instanceof EndPoint) {
+ processEndPoint((EndPoint)root);
+ } else if (root instanceof Error) {
+ processError((Error)root);
+ } else if (root instanceof Escalation) {
+ processEscalation((Escalation)root);
+ } else if (root instanceof EventDefinition) {
+ processEventDefinition((EventDefinition)root);
+ } else if (root instanceof Interface) {
+ processInterface((Interface)root);
+ } else if (root instanceof ItemDefinition) {
+ processItemDefinition((ItemDefinition)root);
+ } else if (root instanceof Message) {
+ processMessage((Message)root);
+ } else if (root instanceof PartnerEntity) {
+ processPartnerEntity((PartnerEntity)root);
+ } else if (root instanceof PartnerRole) {
+ processPartnerRole((PartnerRole)root);
+ } else if (root instanceof Resource) {
+ processResource((Resource)root);
+ } else if (root instanceof Signal) {
+ processSignal((Signal)root);
+ } else if (root instanceof Collaboration) {
+ collabs.add((Collaboration)root);
+ }
+ }
+ // process finally, as a transformator may want to set responsibilites (e.g. performing organisation).
+ for (Collaboration collab : collabs) {
+ processCollaboration(collab);
+ }
+ }
+
+ private void processProcess(Process process) {
+ transf.addProcess(process);
+ transf.addIOBinding(process.getIoBinding(), process);
+ for (@SuppressWarnings("unused") Artifact artifact : process.getArtifacts()) {
+ processingInfo += "Artifact" + NOT_SUPPORTED;
+ }
+ processFlowElementsContainer(process);
+ }
+
+ private void processFlowElementsContainer(FlowElementsContainer process) {
+ List<SequenceFlow> sequenceFlows = new ArrayList<SequenceFlow>();
+ List<Gateway> gateways = new ArrayList<Gateway>();
+
+ for (LaneSet laneset : process.getLaneSets()) {
+ processLaneset(laneset, process);
+ }
+ for (FlowElement flowElement : process.getFlowElements()) {
+ if (flowElement instanceof SequenceFlow) {
+ sequenceFlows.add((SequenceFlow)flowElement);
+ } else {
+ if (flowElement instanceof Gateway) {
+ //processGateway((Gateway)flowElement, container);
+ gateways.add((Gateway)flowElement);
+ } else {
+ processFlowElement(flowElement, process);
+ }
+ }
+ }
+ for (Gateway gate : gateways) {
+ processFlowElement(gate, process);
+ }
+ for (SequenceFlow flow : sequenceFlows) {
+ processSequenceFlow((SequenceFlow)flow, process);
+ }
+
+ // process finally, because a transformer may want to set responsibilities (e.g. performing role) of contained elements
+ for (LaneSet laneset : process.getLaneSets()) {
+ for (Lane lane : laneset.getLanes()) {
+ processLane(lane, laneset, null, process);
+ }
+ }
+ }
+
+ private void processLane(Lane lane, LaneSet laneset, Lane parentLane, FlowElementsContainer container) {
+ transf.addLane(lane, laneset, parentLane, container);
+ if (lane.getChildLaneSet() == null) return;
+ for (Lane childLane : lane.getChildLaneSet().getLanes()) {
+ processLane(childLane, lane.getChildLaneSet(), lane, container);
+ }
+ }
+
+ private void processFlowElement(FlowElement flowElement, FlowElementsContainer container) {
+
+ if (flowElement instanceof DataObject) {
+ transf.addDataObject((DataObject)flowElement, container);
+ } else if (flowElement instanceof DataObjectReference) {
+ transf.addDataObjectReference((DataObjectReference)flowElement, container);
+ } else if (flowElement instanceof DataStoreReference) {
+ transf.addDataStoreReference((DataStoreReference)flowElement, container);
+ } else if (flowElement instanceof FlowNode) {
+ if (flowElement instanceof Activity) {
+ processActivity((Activity)flowElement, container);
+ } else if (flowElement instanceof Event) {
+ processEvent((Event)flowElement, container);
+ } else if (flowElement instanceof Gateway) {
+ processGateway((Gateway)flowElement, container);
+ }
+ else if (flowElement instanceof ChoreographyActivity) {
+ processChoreographyActivity((ChoreographyActivity)flowElement, container);
+ }
+ }
+ }
+
+ private void processActivity(Activity activity, FlowElementsContainer container) {
+ if (activity instanceof Task) {
+ if (activity instanceof UserTask) {
+ processUserTask((UserTask)activity, container);
+ } else if (activity instanceof ServiceTask) {
+ processServiceTask((ServiceTask)activity, container);
+ } else if (activity instanceof SendTask) {
+ processSendTask((SendTask)activity, container);
+ } else if (activity instanceof ScriptTask) {
+ processScriptTask((ScriptTask)activity, container);
+ } else if (activity instanceof ReceiveTask) {
+ processReceiveTask((ReceiveTask)activity, container);
+ } else if (activity instanceof ManualTask) {
+ processManualTask((ManualTask)activity, container);
+ } else if (activity instanceof BusinessRuleTask) {
+ processBusinessRuleTask((BusinessRuleTask)activity, container);
+ }
+ } else if (activity instanceof SubProcess) {
+ processSubProcess((SubProcess)activity, container);
+
+ } else if (activity instanceof CallActivity) {
+ processCallActivity((CallActivity)activity, container);
+ }
+ }
+
+ private void processSubProcess(SubProcess activity, FlowElementsContainer container) {
+ if (activity instanceof Transaction) {
+ processTransaction((Transaction)activity, container);
+ } else if (activity instanceof AdHocSubProcess) {
+ processAdHocSubProcess((AdHocSubProcess)activity, container);
+ } else {
+ processSubProcessDefault(activity, container);
+ }
+ }
+
+ private void processGateway(Gateway gateway, FlowElementsContainer container) {
+ log.debug("ModelTransformator.processGateway() " + gateway);
+ if (gateway instanceof ExclusiveGateway) {
+ processExclusiveGateway((ExclusiveGateway)gateway, container);
+ } else if (gateway instanceof ParallelGateway) {
+ processParallelGateway((ParallelGateway)gateway, container);
+ } else if (gateway instanceof InclusiveGateway) {
+ processInclusiveGateway((InclusiveGateway)gateway, container);
+ } else if (gateway instanceof ComplexGateway) {
+ processComplexGateway((ComplexGateway)gateway, container);
+ } else if (gateway instanceof EventBasedGateway) {
+ processEventBasedGateway((EventBasedGateway)gateway, container);
+ }
+ }
+
+ private void processEvent(Event event, FlowElementsContainer container) {
+ if (event instanceof StartEvent) {
+ processStartEvent((StartEvent)event, container);
+ } else if (event instanceof EndEvent) {
+ processEndEvent((EndEvent)event, container);
+ } else if (event instanceof BoundaryEvent) {
+ processBoundaryEvent((BoundaryEvent)event, container);
+ } else if (event instanceof IntermediateCatchEvent) {
+ processIntermediateCatchEvent((IntermediateCatchEvent)event, container);
+ } else if (event instanceof IntermediateThrowEvent) {
+ processIntermediateThrowEvent((IntermediateThrowEvent)event, container);
+ } else if (event instanceof ImplicitThrowEvent) {
+ processImplicitThrowEvent((ImplicitThrowEvent)event, container);
+ }
+ }
+
+ private void processResource(Resource resource) {
+ processingInfo += "Resource" + NOT_SUPPORTED;
+ }
+
+ private void processCollaboration(Collaboration collab) {
+ for (Participant participant : collab.getParticipants()) {
+ Process proc = participant.getProcessRef();
+ if (proc != null && proc.eIsProxy()) {
+ URI proxyURI = ((InternalEObject) participant.getProcessRef()).eProxyURI();
+ proc = (Process)participant.eResource().getEObject(proxyURI.fragment());
+ }
+ transf.addParticipant(participant, proc);
+ }
+ }
+
+ private void processStartEvent(StartEvent event, FlowElementsContainer container) {
+ transf.addStartEvent(event, container);
+ }
+
+ private void processEndEvent(EndEvent event, FlowElementsContainer container) {
+ transf.addEndEvent(event, container);
+ }
+
+
+ private void processExclusiveGateway(ExclusiveGateway gateway, FlowElementsContainer container) {
+ //processingInfo += "ExclusiveGateway" + NOT_SUPPORTED;
+ transf.addExclusiveGateway(gateway, container);
+ }
+
+ private void processParallelGateway(ParallelGateway gateway, FlowElementsContainer container) {
+ processingInfo += "ParallelGateway" + NOT_SUPPORTED;
+ //transf.addParallelGateway(gateway, container);
+ }
+
+ private void processUserTask(UserTask activity, FlowElementsContainer container) {
+ transf.addUserTask(activity, container);
+ }
+
+ private void processServiceTask(ServiceTask activity, FlowElementsContainer container) {
+ processingInfo += "ServiceTask" + NOT_SUPPORTED;
+
+ }
+
+ private void processSubProcessDefault(SubProcess activity, FlowElementsContainer container) {
+ processingInfo += "SubProcess" + NOT_SUPPORTED;
+ transf.addSubProcess(activity, container);
+ processFlowElementsContainer(activity);
+ }
+
+
+ private void processSequenceFlow(SequenceFlow seq, FlowElementsContainer container) {
+ transf.addSequenceFlow(seq, container);
+ }
+
+ private void processPartnerEntity(PartnerEntity entity) {
+ transf.addPartnerEntity(entity);
+ }
+
+
+ private void processInclusiveGateway(InclusiveGateway gateway, FlowElementsContainer container) {
+ processingInfo += "InclusiveGateway" + NOT_SUPPORTED;
+
+ }
+
+ private void processComplexGateway(ComplexGateway gateway, FlowElementsContainer container) {
+ processingInfo += "ComplexGateway" + NOT_SUPPORTED;
+
+ }
+
+ private void processEventBasedGateway(EventBasedGateway gateway, FlowElementsContainer container) {
+ processingInfo += "EventBasedGateway" + NOT_SUPPORTED;
+
+ }
+
+ private void processBoundaryEvent(BoundaryEvent event, FlowElementsContainer container) {
+ processingInfo += "BoundaryEvent" + NOT_SUPPORTED;
+
+ }
+
+ private void processIntermediateCatchEvent(IntermediateCatchEvent event, FlowElementsContainer container) {
+ processingInfo += "IntermediateCatchEvent" + NOT_SUPPORTED;
+
+ }
+
+ private void processIntermediateThrowEvent(IntermediateThrowEvent event, FlowElementsContainer container) {
+ processingInfo += "IntermediateThrowEvent" + NOT_SUPPORTED;
+
+ }
+
+ private void processImplicitThrowEvent(ImplicitThrowEvent event, FlowElementsContainer container) {
+ processingInfo += "ImplicitThrowEvent" + NOT_SUPPORTED;
+
+ }
+
+ private void processLaneset(LaneSet laneset, FlowElementsContainer container) {
+ processingInfo += "laneset" + NOT_SUPPORTED;
+ }
+
+ private void processSendTask(SendTask activity, FlowElementsContainer container) {
+ processingInfo += "SendTask" + NOT_SUPPORTED;
+
+ }
+
+ private void processScriptTask(ScriptTask activity, FlowElementsContainer container) {
+ processingInfo += "ScriptTask" + NOT_SUPPORTED;
+
+ }
+
+ private void processReceiveTask(ReceiveTask activity, FlowElementsContainer container) {
+ processingInfo += "ReceiveTask" + NOT_SUPPORTED;
+
+ }
+
+ private void processManualTask(ManualTask activity, FlowElementsContainer container) {
+ processingInfo += "ManualTask" + NOT_SUPPORTED;
+
+ }
+
+ private void processBusinessRuleTask(BusinessRuleTask activity, FlowElementsContainer container) {
+ processingInfo += "BusinessRuleTask" + NOT_SUPPORTED;
+
+ }
+
+
+ private void processTransaction(Transaction activity, FlowElementsContainer container) {
+ processingInfo += "Transaction" + NOT_SUPPORTED;
+
+ }
+
+ private void processAdHocSubProcess(AdHocSubProcess activity, FlowElementsContainer container) {
+ processingInfo += "AdHocSubProcess" + NOT_SUPPORTED;
+
+ }
+
+ private void processCallActivity(CallActivity activity, FlowElementsContainer container) {
+ processingInfo += "CallActivity" + NOT_SUPPORTED;
+
+ }
+
+
+ private void processChoreographyActivity(ChoreographyActivity choreo, FlowElementsContainer container) {
+ processingInfo += "ChoreographyActivity" + NOT_SUPPORTED;
+
+ }
+
+ private void processGlobalTask(GlobalTask global) {
+ processingInfo += "GlobalTask" + NOT_SUPPORTED;
+ }
+
+ private void processDataStore(DataStore data) {
+ processingInfo += "DataStore" + NOT_SUPPORTED;
+
+ }
+
+ private void processPartnerRole(PartnerRole role) {
+ processingInfo += "PartnerRole" + NOT_SUPPORTED;
+ }
+
+
+ private void processEndPoint(EndPoint endpoint) {
+ processingInfo += "EndPoint" + NOT_SUPPORTED;
+
+ }
+
+ private void processError(Error error) {
+
+ processingInfo += "Error" + NOT_SUPPORTED;
+ }
+
+ private void processEscalation(Escalation escal) {
+ processingInfo += "Escalation" + NOT_SUPPORTED;
+
+ }
+
+ private void processEventDefinition(EventDefinition eventdef) {
+ processingInfo += "EventDefinition" + NOT_SUPPORTED;
+
+ }
+
+ private void processInterface(Interface iface) {
+ processingInfo += "Interface" + NOT_SUPPORTED;
+
+ }
+
+ private void processItemDefinition(ItemDefinition itemdef) {
+ processingInfo += "ItemDefinition" + NOT_SUPPORTED;
+
+ }
+
+
+ private void processSignal(Signal signal) {
+ processingInfo += "Signal" + NOT_SUPPORTED;
+
+ }
+
+ private void processMessage(Message root) {
+ processingInfo += "Message" + NOT_SUPPORTED;
+ }
+
+ private void processCorrelationProperty(CorrelationProperty root) {
+ processingInfo += "CorrelationProperty" + NOT_SUPPORTED;
+
+ }
+
+ private void processCategory(Category root) {
+ processingInfo += "Category" + NOT_SUPPORTED;
+
+ }
+
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Transformator.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Transformator.java
new file mode 100644
index 0000000..34bb12d
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/Transformator.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform;
+
+import java.util.List;
+
+import org.eclipse.bpmn2.DataObject;
+import org.eclipse.bpmn2.DataObjectReference;
+import org.eclipse.bpmn2.DataStoreReference;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.EndEvent;
+import org.eclipse.bpmn2.ExclusiveGateway;
+import org.eclipse.bpmn2.FlowElementsContainer;
+import org.eclipse.bpmn2.InputOutputBinding;
+import org.eclipse.bpmn2.Lane;
+import org.eclipse.bpmn2.LaneSet;
+import org.eclipse.bpmn2.ParallelGateway;
+import org.eclipse.bpmn2.Participant;
+import org.eclipse.bpmn2.PartnerEntity;
+import org.eclipse.bpmn2.Process;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.SubProcess;
+import org.eclipse.bpmn2.UserTask;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public interface Transformator {
+
+ public void createTargetModel(Definitions definitions);
+
+ public Object getTargetModel();
+
+ public void addProcess(Process process);
+
+ public void addUserTask(UserTask task, FlowElementsContainer container);
+
+ public void addStartEvent(StartEvent event, FlowElementsContainer container);
+
+ public void addEndEvent(EndEvent event, FlowElementsContainer container);
+
+ public void serializeTargetModel(String outputFile);
+
+ public void addIOBinding(List<InputOutputBinding> ioBinding, FlowElementsContainer container);
+
+ public void addDataObject(DataObject flowElement, FlowElementsContainer container);
+
+ public void addDataObjectReference(DataObjectReference flowElement, FlowElementsContainer container);
+
+ public void addDataStoreReference(DataStoreReference flowElement, FlowElementsContainer container);
+
+ public void addSubProcess(SubProcess activity, FlowElementsContainer container);
+
+ public List<String> getTransformationMessages();
+
+ public void addSequenceFlow(SequenceFlow seq, FlowElementsContainer container);
+
+ public void addParticipant(Participant participant, Process proc);
+
+ public void addLane(Lane lane, LaneSet laneset, Lane parentLane, FlowElementsContainer container);
+
+ public void addExclusiveGateway(ExclusiveGateway gateway, FlowElementsContainer container);
+
+ public void addParallelGateway(ParallelGateway gateway, FlowElementsContainer container);
+
+ public void addPartnerEntity(PartnerEntity entity);
+
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDL.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDL.java
new file mode 100644
index 0000000..dbdf9fe
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDL.java
@@ -0,0 +1,540 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform.carnot;
+
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newBpmModel;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newManualActivity;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newManualTrigger;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newOrganization;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newProcessDefinition;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newRole;
+import static org.eclipse.stardust.model.xpdl.builder.BpmModelBuilder.newSubProcessActivity;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.bpmn2.Activity;
+import org.eclipse.bpmn2.CatchEvent;
+import org.eclipse.bpmn2.DataObject;
+import org.eclipse.bpmn2.DataObjectReference;
+import org.eclipse.bpmn2.DataStoreReference;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.Documentation;
+import org.eclipse.bpmn2.EndEvent;
+import org.eclipse.bpmn2.EventDefinition;
+import org.eclipse.bpmn2.ExclusiveGateway;
+import org.eclipse.bpmn2.FlowElementsContainer;
+import org.eclipse.bpmn2.FlowNode;
+import org.eclipse.bpmn2.FormalExpression;
+import org.eclipse.bpmn2.InputOutputBinding;
+import org.eclipse.bpmn2.Lane;
+import org.eclipse.bpmn2.LaneSet;
+import org.eclipse.bpmn2.MessageEventDefinition;
+import org.eclipse.bpmn2.ParallelGateway;
+import org.eclipse.bpmn2.Participant;
+import org.eclipse.bpmn2.PartnerEntity;
+import org.eclipse.bpmn2.Performer;
+import org.eclipse.bpmn2.Process;
+import org.eclipse.bpmn2.Resource;
+import org.eclipse.bpmn2.ResourceRole;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.SubProcess;
+import org.eclipse.bpmn2.TimerEventDefinition;
+import org.eclipse.bpmn2.UserTask;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.stardust.engine.api.model.PredefinedConstants;
+import org.eclipse.stardust.engine.core.extensions.triggers.timer.TimerTriggerValidator;
+import org.eclipse.stardust.engine.extensions.jms.trigger.JMSTriggerValidator;
+import org.eclipse.stardust.engine.extensions.mail.trigger.MailTriggerValidator;
+import org.eclipse.stardust.model.bpmn2.transform.Transformator;
+import org.eclipse.stardust.model.bpmn2.transform.util.Bpmn2ProxyResolver;
+import org.eclipse.stardust.model.xpdl.builder.common.AbstractElementBuilder;
+import org.eclipse.stardust.model.xpdl.builder.defaults.DefaultTypesInitializer;
+import org.eclipse.stardust.model.xpdl.builder.utils.XpdlModelIoUtils;
+import org.eclipse.stardust.model.xpdl.builder.utils.XpdlModelUtils;
+import org.eclipse.stardust.model.xpdl.carnot.ActivityType;
+import org.eclipse.stardust.model.xpdl.carnot.CarnotWorkflowModelFactory;
+import org.eclipse.stardust.model.xpdl.carnot.CarnotWorkflowModelPackage;
+import org.eclipse.stardust.model.xpdl.carnot.DescriptionType;
+import org.eclipse.stardust.model.xpdl.carnot.IModelParticipant;
+import org.eclipse.stardust.model.xpdl.carnot.JoinSplitType;
+import org.eclipse.stardust.model.xpdl.carnot.ModelType;
+import org.eclipse.stardust.model.xpdl.carnot.OrganizationType;
+import org.eclipse.stardust.model.xpdl.carnot.ProcessDefinitionType;
+import org.eclipse.stardust.model.xpdl.carnot.RoleType;
+import org.eclipse.stardust.model.xpdl.carnot.TransitionType;
+import org.eclipse.stardust.model.xpdl.carnot.TriggerType;
+import org.eclipse.stardust.model.xpdl.carnot.TriggerTypeType;
+import org.eclipse.stardust.model.xpdl.carnot.XmlTextNode;
+import org.eclipse.stardust.model.xpdl.carnot.util.ModelUtils;
+/**
+ * @author Simon Nikles
+ *
+ */
+public class Bpmn2CarnotXPDL implements Transformator {
+
+ private static final String FAIL_NO_PROCESS_DEF = "Stardust Process definition not found";
+ private static final String FAIL_ELEMENT_CREATION = "Could not create Stardust element";
+ private static final String FAIL_ELEMENT_UNSUPPORTED_FEATURE = "Usupported feature: ";
+
+ private static final String CONDITION_KEY = "CONDITION";
+ private static final String OTHERWISE_KEY = "OTHERWISE";
+
+ private static final String EXPRESSION_LANGUAGE_JAVA = "http://www.sun.com/java";
+
+
+ private ModelType carnotModel = null;
+
+ private List<String> failures = new ArrayList<String>();
+
+ private final Logger logger = Logger.getLogger(this.getClass());
+
+ public void createTargetModel(Definitions definitions) {
+ carnotModel = newBpmModel()
+ .withIdAndName(definitions.getId(), definitions.getName())
+ .build();
+ Bpmn2CarnotXPDLExtension.addModelExtensions(definitions, carnotModel);
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //////////TODO REMOVE IF DEFAULTTYPESINITIALIZER IS COMPLETE!!! ////////////////////////////////////////////////////
+ DefaultTypesInitializer initializer = new DefaultTypesInitializer();
+ initializer.initializeTriggerType(carnotModel, PredefinedConstants.JMS_TRIGGER, "JMS Trigger",
+ false, JMSTriggerValidator.class);
+ initializer.initializeTriggerType(carnotModel, PredefinedConstants.MAIL_TRIGGER, "Mail Trigger",
+ false, MailTriggerValidator.class);
+ initializer.initializeTriggerType(carnotModel, PredefinedConstants.TIMER_TRIGGER, "Timer Trigger",
+ false, TimerTriggerValidator.class);
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ }
+
+ public ModelType getTargetModel() {
+ return carnotModel;
+ }
+
+ public List<String> getTransformationMessages() {
+ return failures;
+ }
+
+ public void serializeTargetModel(String outputPath) {
+ logger.debug("serializeTargetModel " + outputPath);
+ FileOutputStream fis;
+ try {
+ fis = new FileOutputStream(new File(outputPath));
+ fis.write(XpdlModelIoUtils.saveModel(carnotModel));
+ fis.close();
+ } catch (FileNotFoundException e) {
+ logger.error(e.getMessage());
+ } catch (IOException e) {
+ logger.error(e.getMessage());
+ }
+ }
+
+ public void addStartEvent(StartEvent event, FlowElementsContainer container) {
+ logger.debug("addStartEvent " + event);
+ int eventDefCount = countEventDefinitions(event);
+ EventDefinition def = getFirstEventDefinition(event);
+ if (eventDefCount > 1) {
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + "StartEvent - Multiple Event definitions " + event.getId());
+ return;
+ }
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ if (processDef != null) {
+ if (def == null) {
+ failures.add("StartEvent - no event definition available (" + event.getId() + "). Manual Start is assumed.");
+ addManualTrigger(event, container, processDef);
+ } else if (def instanceof MessageEventDefinition) {
+ def = event.getEventDefinitions().get(0);
+ addMessageTrigger(event, def, container, processDef);
+ } else if (def instanceof TimerEventDefinition) {
+ def = event.getEventDefinitions().get(0);
+ addTimerTrigger(event, def, container, processDef);
+ } else {
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + "StartEvent " + event.getId() + " EventDefinition " + def.getClass().getName());
+ return;
+ }
+
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+ }
+
+ public void addExclusiveGateway(ExclusiveGateway gateway, FlowElementsContainer container) {
+ logger.info("addExclusiveGateway" + gateway.getId() + " " + gateway.getName());
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ List<SequenceFlow> incomings = gateway.getIncoming();
+ List<SequenceFlow> outgoings = gateway.getOutgoing();
+ if (processDef ==null) {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ return;
+ }
+ if (incomings == null || outgoings == null) return;
+ if (incomings.size() == 0 || outgoings.size() == 0) return;
+
+ boolean isFork = outgoings.size() > 1;
+ boolean isJoin = incomings.size() > 1;
+
+ if (incomings.size() > 1 && outgoings.size() > 1) {
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + " n:n exclusive gateway - target model incomplete.");
+ return;
+ }
+ if (isFork) {
+ ActivityType sourceActivity = findActivity(incomings.get(0).getSourceRef(), container);
+ if (sourceActivity != null) sourceActivity.setSplit(JoinSplitType.XOR_LITERAL);
+ for (SequenceFlow outgoing : outgoings) {
+ if (outgoing.getTargetRef() instanceof Activity) {
+ ActivityType targetActivity = findActivity(outgoing.getTargetRef(), container);
+ if (targetActivity == null) continue;
+ boolean hasCondition = outgoing.getConditionExpression() != null;
+ List<Documentation> conditionDoc = hasCondition ? outgoing.getConditionExpression().getDocumentation() : null;
+ String condition = hasCondition ? getDescriptionFromDocumentation(conditionDoc) : "";
+ String gatewayDoc = getDescriptionFromDocumentation(gateway.getDocumentation());
+ addGatewayTransition(gateway, condition, outgoing.getName(), outgoing.getId(), gatewayDoc, sourceActivity, targetActivity, container, processDef);
+ } else {
+ // TODO
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + " exclusive gateway target other than activity - target model incomplete.");
+ continue;
+ }
+ }
+ } else if (isJoin) {
+ ActivityType targetActivity = findActivity(outgoings.get(0).getTargetRef(), container);
+ if (targetActivity != null) targetActivity.setJoin(JoinSplitType.XOR_LITERAL);
+ for (SequenceFlow incoming : incomings) {
+ if (incoming.getSourceRef() instanceof Activity) {
+ ActivityType sourceActivity = findActivity(incoming.getSourceRef(), container);
+ if (sourceActivity == null) continue;
+ addGatewayTransition(gateway, "", incoming.getId(), incoming.getId(), getDescriptionFromDocumentation(gateway.getDocumentation()), sourceActivity, targetActivity, container, processDef);
+ } else {
+ // TODO
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + " exclusive gateway source other than activity - target model incomplete.");
+ continue;
+ }
+ }
+ }
+ }
+
+ public void addPartnerEntity(PartnerEntity entity) {
+ newOrganization(carnotModel)
+ .withIdAndName(entity.getId(), entity.getName())
+ .withDescription(getDescriptionFromDocumentation(entity.getDocumentation()))
+ .build();
+ }
+
+ public void addProcess(Process process) {
+ logger.debug("addProcess " + process);
+ List<Documentation> docs = process.getDocumentation();
+ String processDescription = getDescriptionFromDocumentation(docs);
+ newProcessDefinition(carnotModel)
+ .withIdAndName(process.getId(), process.getName())
+ .withDescription(processDescription)
+ .build();
+ }
+
+ public void addSequenceFlow(SequenceFlow seq, FlowElementsContainer container) {
+ logger.debug("addSequenceFlow " + seq);
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ FlowNode sourceNode = seq.getSourceRef();
+ FlowNode targetNode = seq.getTargetRef();
+ if (processDef != null) {
+ if (sourceNode instanceof StartEvent || targetNode instanceof EndEvent) return;
+ if (sourceNode instanceof Activity && targetNode instanceof Activity) {
+ addActivityToActivityTransition(seq, sourceNode, targetNode, container, processDef);
+ }
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+ }
+
+ public void addSubProcess(SubProcess subprocess, FlowElementsContainer container) {
+ logger.info("addSubProcess" + subprocess.getId() + " " + subprocess.getName());
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ if (processDef != null) {
+ List<Documentation> docs = subprocess.getDocumentation();
+ String processDescription = getDescriptionFromDocumentation(docs);
+ ProcessDefinitionType implProcessDef = newProcessDefinition(carnotModel)
+ .withIdAndName(subprocess.getId(), subprocess.getName())
+ .withDescription(processDescription).build();
+ ActivityType activity = newSubProcessActivity(processDef)
+ .withIdAndName(subprocess.getId(), subprocess.getName())
+ .withDescription(processDescription)
+ .build();
+ activity.setImplementationProcess(implProcessDef);
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+ }
+
+ public void addUserTask(UserTask task, FlowElementsContainer container) {
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ if (processDef != null) {
+ String descr = getDescriptionFromDocumentation(task.getDocumentation());
+ ActivityType activity = newManualActivity(processDef)
+ .withIdAndName(task.getId(), task.getName())
+ .withDescription(descr)
+ .build();
+ Bpmn2CarnotXPDLExtension.addUserTaskExtensions(task, activity);
+
+ List<ResourceRole> resources = task.getResources();
+ for (ResourceRole role : resources) {
+ if (role instanceof Performer) {
+ setTaskPerformer(activity, role, task, container);
+ }
+ }
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+
+ }
+
+ private void addActivityToActivityTransition(SequenceFlow seq, FlowNode sourceNode, FlowNode targetNode, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ if (processDef != null) {
+ ActivityType sourceActivity = findActivity(sourceNode, container);
+ ActivityType targetActivity = findActivity(targetNode, container);
+ if (sourceActivity != null && targetActivity != null) {
+ String documentation = getDescriptionFromDocumentation(seq.getDocumentation());
+ TransitionType transition = createTransition(seq.getId(), seq.getName(), documentation, sourceActivity, targetActivity);
+ if (seq.getConditionExpression() != null) {
+ if (seq.getConditionExpression() instanceof FormalExpression) {
+ setSequenceFormalCondition(transition, (FormalExpression)seq.getConditionExpression());
+ } else if (seq.getConditionExpression().getDocumentation() != null
+ && seq.getConditionExpression().getDocumentation().get(0) != null
+ && !seq.getConditionExpression().getDocumentation().get(0).getText().equals("")) {
+ setSequenceInformalCondition(transition, seq.getConditionExpression().getDocumentation().get(0).getText());
+ } else {
+ setSequenceTrueCondition(transition);
+ }
+ }
+ // TODO transition.setForkOnTraversal()
+ processDef.getTransition().add(transition);
+ } else {
+ failures.add("No valid source and target for sequence flow: " + seq.getId() + " sourceRef " + seq.getSourceRef() + " targetRef " + seq.getTargetRef());
+ }
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+ }
+
+ private void addGatewayTransition(ExclusiveGateway gateway, String condition, String name, String Id, String documentation, ActivityType sourceActivity, ActivityType targetActivity, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ logger.info("addGatewayTransition from " + sourceActivity.getName() + " to " + targetActivity.getName());
+ if (processDef != null) {
+ if (sourceActivity != null && targetActivity != null) {
+ TransitionType transition = createTransition(Id, name, documentation, sourceActivity, targetActivity);
+ if (gateway.getDefault() != null && gateway.getDefault().getTargetRef().getId().equals(targetActivity.getId())) {
+ setSequenceOtherwiseCondition(transition);
+ } else if (!condition.equals("")) {
+ transition.setCondition(condition);
+ }
+ processDef.getTransition().add(transition);
+ } else {
+ failures.add("No valid source and target for gateway sequence: " + Id);
+ }
+ } else {
+ failures.add(FAIL_NO_PROCESS_DEF + "(Id: " + container.getId() + ")");
+ }
+ }
+
+ private void addManualTrigger(StartEvent event, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ logger.debug("addManualTrigger " + event);
+ TriggerType trigger = newManualTrigger(processDef)
+ .withIdAndName(event.getId(), event.getName())
+ .build();
+ Bpmn2CarnotXPDLExtension.addStartEventExtensions(event, trigger);
+ }
+
+ private void addMessageTrigger(StartEvent event, EventDefinition def, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ logger.debug("addMessageTrigger (JMS) " + event);
+ TriggerTypeType triggerType = Bpmn2CarnotXPDLExtension.getMessageStartEventTriggerType(event, carnotModel);
+ if (triggerType != null) {
+ TriggerType trigger = AbstractElementBuilder.F_CWM.createTriggerType();
+ trigger.setType(triggerType);
+ trigger.setId(event.getId());
+ trigger.setName(event.getName());
+ Bpmn2CarnotXPDLExtension.addMessageStartEventExtensions(event, trigger);
+ processDef.getTrigger().add(trigger);
+ } else {
+ failures.add(FAIL_ELEMENT_CREATION + "(Start event: " + event.getId() + " - trigger type + " + PredefinedConstants.JMS_TRIGGER + " not found)");
+ }
+ }
+
+ private void addTimerTrigger(StartEvent event, EventDefinition def, FlowElementsContainer container, ProcessDefinitionType processDef) {
+ logger.debug("addTimerTrigger " + event);
+ TriggerTypeType triggerType = XpdlModelUtils.findElementById(carnotModel.getTriggerType(), PredefinedConstants.TIMER_TRIGGER);
+ if (triggerType != null) {
+ TriggerType trigger = AbstractElementBuilder.F_CWM.createTriggerType();
+ trigger.setType(triggerType);
+ trigger.setId(event.getId());
+ trigger.setName(event.getName());
+ Bpmn2CarnotXPDLExtension.addTimerStartEventExtensions(event, trigger);
+ processDef.getTrigger().add(trigger);
+ } else {
+ failures.add(FAIL_ELEMENT_CREATION + "(Start event: " + event.getId() + " - trigger type + " + PredefinedConstants.JMS_TRIGGER + " not found)");
+ }
+ }
+
+ public void addParallelGateway(ParallelGateway gateway, FlowElementsContainer container) {
+ }
+
+ public void addParticipant(Participant participant, Process process) {
+ }
+
+ public void addLane(Lane lane, LaneSet laneset, Lane parentLane, FlowElementsContainer container) {
+
+ }
+
+ public void addIOBinding(List<InputOutputBinding> ioBinding, FlowElementsContainer container) {
+
+ }
+
+ public void addDataObject(DataObject flowElement, FlowElementsContainer container) {
+
+
+ }
+
+ public void addDataObjectReference(DataObjectReference flowElement, FlowElementsContainer container) {
+
+
+ }
+
+ public void addDataStoreReference(DataStoreReference flowElement, FlowElementsContainer container) {
+
+
+ }
+
+ public void addEndEvent(EndEvent event, FlowElementsContainer container) {
+
+
+ }
+
+ private int countEventDefinitions(CatchEvent event) {
+ if (event.getEventDefinitions() != null) return event.getEventDefinitions().size();
+ return 0;
+ }
+
+ private TransitionType createTransition(String id, String name, String documentation, ActivityType sourceActivity, ActivityType targetActivity) {
+ DescriptionType descrType = getDescription(documentation);
+ TransitionType transition = AbstractElementBuilder.F_CWM.createTransitionType();
+ transition.setFrom(sourceActivity);
+ transition.setTo(targetActivity);
+ transition.setId(id);
+ transition.setName(name);
+ transition.setDescription(descrType);
+ return transition;
+ }
+
+ private ActivityType findActivity(FlowNode node, FlowElementsContainer container) {
+ String nodeId = node != null ? node.getId() : null;
+ ProcessDefinitionType processDef = findProcessDefinition(container.getId());
+ if (processDef != null && nodeId != null) {
+ for (ActivityType activity : processDef.getActivity()) {
+ if (activity.getId().equals(nodeId)) return activity;
+ }
+ }
+ return null;
+ }
+
+ private ProcessDefinitionType findProcessDefinition(String id) {
+ EList<ProcessDefinitionType> processDefs = carnotModel.getProcessDefinition();
+ for (ProcessDefinitionType processDef : processDefs) {
+ if (processDef.getId().equals(id)) return processDef;
+ }
+ return null;
+ }
+
+ private IModelParticipant findResourceType(String id) {
+ EList<RoleType> roles = carnotModel.getRole();
+ EList<OrganizationType> orgs = carnotModel.getOrganization();
+ for (RoleType role : roles) {
+ if (role.getId().equals(id)) return role;
+ }
+ for (OrganizationType org : orgs) {
+ if (org.getId().equals(id)) return org;
+ }
+ return null;
+ }
+
+ private DescriptionType getDescription(String description) {
+ DescriptionType descriptor = AbstractElementBuilder.F_CWM.createDescriptionType();
+ XpdlModelUtils.setCDataString(descriptor.getMixed(), description, true);
+ return descriptor;
+ }
+
+ private String getDescriptionFromDocumentation(List<Documentation> documentation) {
+ String description = "";
+ for (Documentation doc : documentation) {
+ description = description.concat(doc.getText());
+ }
+ return description;
+ }
+
+ private EventDefinition getFirstEventDefinition(CatchEvent event) {
+ if (countEventDefinitions(event) > 0) {
+ return event.getEventDefinitions().get(0);
+ }
+ return null;
+ }
+
+ private void setSequenceFormalCondition(TransitionType transition, FormalExpression formalExpression) {
+ if (formalExpression.getLanguage().equals(EXPRESSION_LANGUAGE_JAVA)) {
+ transition.setCondition(CONDITION_KEY);
+ XmlTextNode expression = CarnotWorkflowModelFactory.eINSTANCE.createXmlTextNode();
+ ModelUtils.setCDataString(expression.getMixed(), formalExpression.getBody(), true);
+ transition.setExpression(expression);
+ } else {
+ String expr = formalExpression.getLanguage()
+ + " \n" + formalExpression.getBody();
+ setSequenceInformalCondition(transition, expr);
+ failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + "(Sequence - " + transition.getId() + " - Expression language (" + formalExpression.getLanguage() + ") not supported.");
+ }
+ }
+
+ private void setSequenceInformalCondition(TransitionType transition, String string) {
+ DescriptionType descrType = transition.getDescription();
+ String val = descrType.getMixed().getValue(CarnotWorkflowModelPackage.DESCRIPTION_TYPE__MIXED).toString();
+ descrType.getMixed().setValue(CarnotWorkflowModelPackage.DESCRIPTION_TYPE__MIXED, val + " " + string);
+ transition.setDescription(descrType);
+ }
+
+ private void setSequenceOtherwiseCondition(TransitionType transition) {
+ transition.setCondition(OTHERWISE_KEY);
+ }
+
+ private void setSequenceTrueCondition(TransitionType transition) {
+ transition.setCondition(CONDITION_KEY);
+ XmlTextNode expression = CarnotWorkflowModelFactory.eINSTANCE.createXmlTextNode();
+ ModelUtils.setCDataString(expression.getMixed(), "true", true);
+ transition.setExpression(expression);
+ }
+
+ private void setTaskPerformer(ActivityType activity, ResourceRole role, UserTask task, FlowElementsContainer container) {
+ if (role.getResourceAssignmentExpression() != null) failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + "(RESOURCE ASSIGNMENT EXPRESSION NOT IMPLEMENTED)");
+ if (role.getResourceParameterBindings() != null) failures.add(FAIL_ELEMENT_UNSUPPORTED_FEATURE + "RESOURCE PARAMETER BINDINGS NOT IMPLEMENTED");
+
+ if (role.eIsProxy()) role = Bpmn2ProxyResolver.resolveRoleProxy(role, container);
+ if (role.getResourceRef() != null) {
+ Resource resource = role.getResourceRef();
+ if (resource.eIsProxy()) resource = Bpmn2ProxyResolver.resolveResourceProxy(resource, container);
+ if (resource != null) {
+ IModelParticipant resourceType = findResourceType(resource.getId());
+ if (resourceType==null) {
+ String descr = getDescriptionFromDocumentation(resource.getDocumentation());
+ resourceType = newRole(carnotModel).withIdAndName(resource.getId(), resource.getName()).withDescription(descr).build();
+ }
+ activity.setPerformer(resourceType);
+ }
+ }
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDLExtension.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDLExtension.java
new file mode 100644
index 0000000..36a6c7d
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/Bpmn2CarnotXPDLExtension.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform.carnot;
+
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.UserTask;
+import org.eclipse.stardust.engine.api.model.PredefinedConstants;
+import org.eclipse.stardust.model.bpmn2.extension.ExtensionHelper;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType;
+import org.eclipse.stardust.model.xpdl.builder.utils.XpdlModelUtils;
+import org.eclipse.stardust.model.xpdl.carnot.ActivityType;
+import org.eclipse.stardust.model.xpdl.carnot.ModelType;
+import org.eclipse.stardust.model.xpdl.carnot.TriggerType;
+import org.eclipse.stardust.model.xpdl.carnot.TriggerTypeType;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class Bpmn2CarnotXPDLExtension {
+
+ public static void addStartEventExtensions(StartEvent event, TriggerType trigger) {
+ StardustStartEventType extension = ExtensionHelper.getInstance().getStartEventExtension(event);
+ if (extension!=null) trigger.getAttribute().addAll(extension.getStardustAttributes().getAttributeType());
+ }
+
+ public static void addMessageStartEventExtensions(StartEvent event, TriggerType trigger) {
+ StardustMessageStartEventType extension = ExtensionHelper.getInstance().getMessageStartEventExtension(event);
+ if (extension == null) return;
+ trigger.getAccessPoint().addAll(extension.getAccessPoint());
+ trigger.getParameterMapping().addAll(extension.getParameterMapping());
+ trigger.getAttribute().addAll(extension.getStardustAttributes().getAttributeType());
+ }
+
+ public static void addTimerStartEventExtensions(StartEvent event, TriggerType trigger) {
+ StardustTimerStartEventType extension = ExtensionHelper.getInstance().getTimerStartEventExtension(event);
+ if (extension != null)
+ trigger.getAttribute().addAll(extension.getStardustAttributes().getAttributeType());
+ }
+
+ /**
+ * Defaults to JMS-Trigger
+ * @param event
+ * @param carnotModel
+ * @return
+ */
+ public static TriggerTypeType getMessageStartEventTriggerType(StartEvent event, ModelType carnotModel) {
+ StardustMessageStartEventType extension = ExtensionHelper.getInstance().getMessageStartEventExtension(event);
+ if (extension != null) {
+ String type = extension.getType();
+ return XpdlModelUtils.findElementById(carnotModel.getTriggerType(), type);
+ } else {
+ return XpdlModelUtils.findElementById(carnotModel.getTriggerType(), PredefinedConstants.JMS_TRIGGER);
+ }
+ }
+
+ public static void addUserTaskExtensions(UserTask task, ActivityType activity) {
+ StardustUserTaskType taskExt = ExtensionHelper.getInstance().getUserTaskExtension(task);
+ if (taskExt == null) return;
+ activity.setAllowsAbortByPerformer(taskExt.isAllowsAbortByPerformer());
+ activity.setHibernateOnCreation(taskExt.isHibernateOnCreation());
+ activity.setElementOid(Long.parseLong(taskExt.getElementOid()));
+ activity.getDataMapping().addAll(taskExt.getDataMapping());
+ activity.getEventHandler().addAll(taskExt.getEventHandler());
+ }
+
+ public static void addModelExtensions(Definitions definitions, ModelType carnotModel) {
+ StardustModelType modelValues = ExtensionHelper.getInstance().getModelAttributes(definitions);
+ if (modelValues == null) return;
+ carnotModel.setCarnotVersion(modelValues.getCarnotVersion());
+ carnotModel.setAuthor(modelValues.getAuthor());
+ carnotModel.setCreated(modelValues.getCreated().toXMLFormat());
+ carnotModel.setModelOID(Math.max(modelValues.getModelOID().intValue(), 1));
+ if (modelValues.getOid() > 0) carnotModel.setOid(modelValues.getOid());
+ carnotModel.setVendor(modelValues.getVendor());
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/DialectCarnotXPDL.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/DialectCarnotXPDL.java
new file mode 100644
index 0000000..4f9115e
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/carnot/DialectCarnotXPDL.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform.carnot;
+
+import org.eclipse.stardust.model.bpmn2.transform.Dialect;
+import org.eclipse.stardust.model.bpmn2.transform.Transformator;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class DialectCarnotXPDL implements Dialect {
+
+ public static final String DIALECT_CARNOT = "carnot_xpdl";
+
+ public Transformator getTransformator() {
+ return new Bpmn2CarnotXPDL();
+ }
+
+ public String getDialectName() {
+ return DIALECT_CARNOT;
+ };
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/util/Bpmn2ProxyResolver.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/util/Bpmn2ProxyResolver.java
new file mode 100644
index 0000000..e585301
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/main/java/org/eclipse/stardust/model/bpmn2/transform/util/Bpmn2ProxyResolver.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.transform.util;
+
+import org.eclipse.bpmn2.FlowElementsContainer;
+import org.eclipse.bpmn2.Resource;
+import org.eclipse.bpmn2.ResourceRole;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class Bpmn2ProxyResolver {
+
+ public static Resource resolveResourceProxy(Resource resource, FlowElementsContainer container) {
+ URI proxyURI = ((InternalEObject) resource).eProxyURI();
+ if (container.eResource() != null) {
+ org.eclipse.emf.ecore.resource.Resource eRes = container.eResource();
+ resource = (Resource)eRes.getEObject(proxyURI.fragment());
+ }
+ return resource;
+ }
+
+ public static ResourceRole resolveRoleProxy(ResourceRole role, FlowElementsContainer container) {
+ URI proxyURI = ((InternalEObject) role).eProxyURI();
+ if (container.eResource() != null) {
+ org.eclipse.emf.ecore.resource.Resource eRes = container.eResource();
+ role = (ResourceRole)eRes.getEObject(proxyURI.fragment());
+ }
+ return role;
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java
new file mode 100644
index 0000000..a6afcf0
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/java/org/eclipse/stardust/test/model/transformation/bpmn/Bpmn2CarnotXPDLTest.java
@@ -0,0 +1,320 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.test.model.transformation.bpmn;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.util.Bpmn2Resource;
+import org.eclipse.stardust.engine.api.model.PredefinedConstants;
+import org.eclipse.stardust.engine.core.model.beans.XMLConstants;
+import org.eclipse.stardust.model.bpmn2.input.BPMNModelImporter;
+import org.eclipse.stardust.model.bpmn2.transform.TransformationControl;
+import org.eclipse.stardust.model.bpmn2.transform.carnot.DialectCarnotXPDL;
+import org.eclipse.stardust.model.xpdl.carnot.ActivityImplementationType;
+import org.eclipse.stardust.model.xpdl.carnot.ActivityType;
+import org.eclipse.stardust.model.xpdl.carnot.IModelParticipant;
+import org.eclipse.stardust.model.xpdl.carnot.JoinSplitType;
+import org.eclipse.stardust.model.xpdl.carnot.ModelType;
+import org.eclipse.stardust.model.xpdl.carnot.OrganizationType;
+import org.eclipse.stardust.model.xpdl.carnot.ProcessDefinitionType;
+import org.eclipse.stardust.model.xpdl.carnot.RoleType;
+import org.eclipse.stardust.model.xpdl.carnot.TransitionType;
+import org.eclipse.stardust.model.xpdl.carnot.TriggerType;
+
+
+public class Bpmn2CarnotXPDLTest extends TestCase {
+
+ private static final String BPMN_MODEL_DIR = "models/bpmn/";
+ private static final String OUTPUT_DIR = "models/output/";
+ private static final String TEST_ID_START_EVENT = "TestModelStartEventId";
+ private static final String TEST_ID_POOL_P1 = "TestModelPool1";
+ private static final String TEST_ID_POOL_P2 = "TestModelPool2";
+ private static final String TEST_ID_LANE_L1 = "TestModelLane1";
+ private static final String TEST_ID_LANE_L2 = "TestModelLane2";
+ private static final String TEST_ID_TASK_A = "TestModelTaskA";
+ private static final String TEST_ID_TASK_B = "TestModelTaskB";
+ private static final String TEST_ID_TASK_C = "TestModelTaskC";
+ private static final String TEST_ID_TASK_D = "TestModelTaskD";
+ private static final String TEST_ID_TASK_E = "TestModelTaskE";
+ private static final String TEST_ID_SEQUENCE_A_TO_B = "TestModelSequenceAtoB";
+ private static final String TEST_ID_CONDITIONAL_SEQUENCE = "TestModelConditionalSequenceFlow1";
+ private static final String TEST_ID_DEFAULT_SEQUENCE = "TestModelDefaultSequenceFlow";
+ private static final String TEST_ID_XOR_SPLIT_GATEWAY = "TestModelXORSplitGateway";
+ private static final String TEST_ID_XOR_JOIN_GATEWAY = "TestModelXORJoinGateway";
+ private static final String TEST_ID_SUBPROCESS = "TestModelSubProcess";
+ private static final String TEST_ID_MAIN_PROCESS = "TestModelMainProcess";
+ private static final String TEST_ID_PARTNER_ENTITY_ORG_A = "TestOrganisationA";
+ private static final String TEST_ID_RESOURCE_ROLE_A = "TestPerformerRoleA";
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(Bpmn2CarnotXPDLTest.class);
+ createOutputDir();
+ return suite;
+ }
+
+
+ public void testStartEventNone() {
+ final String modelFile = BPMN_MODEL_DIR + "StartEventNone.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testStartEventNone.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+
+ assertNotNull(process);
+ assertNotNull(result);
+ TriggerType trigger = findTrigger(process, TEST_ID_START_EVENT);
+ assertNotNull(trigger);
+ assertEquals(PredefinedConstants.MANUAL_TRIGGER, trigger.getType().getId());
+ }
+
+ public void testStartEventMessage() {
+ // TODO JMS_TRIGGER type is not available
+ /*
+ final String modelFile = BPMN_MODEL_DIR + "StartEventMessage.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testStartEventMessage.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+
+ assertNotNull(process);
+ assertNotNull(result);
+ TriggerType trigger = findTrigger(process, TEST_ID_START_EVENT);
+ assertNotNull(trigger);
+ assertEquals(PredefinedConstants.JMS_TRIGGER, trigger.getType().getId());
+ */
+ }
+
+ public void testStartEventTimer() {
+ final String modelFile = BPMN_MODEL_DIR + "StartEventTimer.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testStartEventTimer.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+
+ assertNotNull(process);
+ assertNotNull(result);
+ TriggerType trigger = findTrigger(process, TEST_ID_START_EVENT);
+ assertNotNull(trigger);
+ assertEquals(PredefinedConstants.TIMER_TRIGGER, trigger.getType().getId());
+ }
+
+ public void testUserTask() {
+ final String modelFile = BPMN_MODEL_DIR + "UserTask.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testUserTask.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+
+ assertNotNull(process);
+ assertNotNull(result);
+ ActivityType activity = findActivity(process, TEST_ID_TASK_A);
+ assertNotNull(activity);
+ assertEquals(ActivityImplementationType.MANUAL_LITERAL, activity.getImplementation());
+ }
+
+ public void testTaskPerformerAndOrganisation() {
+ final String modelFile = BPMN_MODEL_DIR + "PerformerAndPartnerEntityOrg.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "PerformerAndPartnerEntityOrg.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+ assertNotNull(process);
+ assertNotNull(result);
+
+ IModelParticipant orgParticipant = findParticipant(result, TEST_ID_PARTNER_ENTITY_ORG_A);
+ IModelParticipant resourceRole = findParticipant(result, TEST_ID_RESOURCE_ROLE_A);
+ ActivityType taskA = findActivity(process, TEST_ID_TASK_A);
+ assertNotNull(orgParticipant);
+ assertNotNull(resourceRole);
+ assertNotNull(taskA);
+ assertTrue(orgParticipant instanceof OrganizationType);
+ assertTrue(resourceRole instanceof RoleType);
+
+ assertNotNull(taskA.getPerformer());
+ assertTrue(taskA.getPerformer().equals(resourceRole));
+
+ }
+
+ public void testPoolToOrganization() {
+ }
+
+ public void testLaneToRole() {
+ /*final String modelFile = BPMN_MODEL_DIR + "Lane.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testLane.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+
+ assertNotNull(result);
+ IModelParticipant participant = findParticipant(result, TEST_ID_LANE_L1);
+ assertNotNull(participant);
+ assertTrue(participant instanceof RoleType); */
+ }
+
+ public void testPerformerDerivedFromPoolAndLane() {
+ }
+
+ public void testSequenceActivityToActivity(ActivityType taskA, ActivityType taskB, ProcessDefinitionType processDef) {
+ TransitionType sequenceFlow = findTransition(processDef, TEST_ID_SEQUENCE_A_TO_B);
+ assertNotNull(sequenceFlow);
+ assertNotNull(sequenceFlow.getFrom());
+ assertNotNull(sequenceFlow.getTo());
+ assertEquals(taskA, sequenceFlow.getFrom());
+ assertEquals(taskB, sequenceFlow.getTo());
+ }
+
+ public void testXORGatewayOneSplitOneMerge() {
+ final String modelFile = BPMN_MODEL_DIR + "XORGatewaysSingle.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testXORGatewaysSingle.xpdl";
+ final String testCondition = "test='Condition to B'";
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType process = result.getProcessDefinition().get(0);
+
+ // A -> B, C or D -> E
+ // A has condition, D is default path
+ ActivityType taskA = findActivity(process, TEST_ID_TASK_A);
+ ActivityType taskB = findActivity(process, TEST_ID_TASK_B);
+ ActivityType taskC = findActivity(process, TEST_ID_TASK_C);
+ ActivityType taskD = findActivity(process, TEST_ID_TASK_D);
+ ActivityType taskE = findActivity(process, TEST_ID_TASK_E);
+
+ TransitionType transitionAB = findTransition(process, TEST_ID_CONDITIONAL_SEQUENCE);
+ TransitionType defaultTransitionAD = findTransition(process, TEST_ID_DEFAULT_SEQUENCE);
+
+ assertNotNull(taskA);
+ assertNotNull(taskB);
+ assertNotNull(taskC);
+ assertNotNull(taskD);
+ assertNotNull(taskE);
+
+ assertNotNull(transitionAB);
+ assertNotNull(defaultTransitionAD);
+
+ assertTrue(taskA.getOutTransitions().size()==3);
+ assertTrue(taskE.getInTransitions().size()==3);
+
+ assertEquals(JoinSplitType.XOR_LITERAL, taskA.getSplit());
+ assertEquals(JoinSplitType.XOR_LITERAL, taskE.getJoin());
+ System.out.println("sequence condition AB " + transitionAB.getCondition());
+ System.out.println("sequence condition AD " + defaultTransitionAD.getCondition());
+
+ assertEquals(testCondition, transitionAB.getCondition());
+ assertEquals(XMLConstants.CONDITION_OTHERWISE_VALUE, defaultTransitionAD.getCondition());
+
+ }
+
+ public void testCollapsedSubprocess() {
+ final String modelFile = BPMN_MODEL_DIR + "CollapsedSubprocess.bpmn";
+ final String fileOutput = getResourceFilePath(OUTPUT_DIR) + "testCollapsedSubprocess.xpdl";
+
+ ModelType result = transformModel(loadBpmnModel(modelFile), fileOutput);
+ ProcessDefinitionType mainprocess = findProcessDefinition(result, TEST_ID_MAIN_PROCESS);
+ ProcessDefinitionType subprocess = findProcessDefinition(result, TEST_ID_SUBPROCESS);
+
+ ActivityType taskA = findActivity(subprocess, TEST_ID_TASK_A);
+ ActivityType subprocessActivity = findActivity(mainprocess, TEST_ID_SUBPROCESS);
+
+ assertNotNull(mainprocess);
+ assertNotNull(subprocessActivity);
+ assertNotNull(subprocess);
+ assertNotNull(taskA);
+
+ assertEquals(ActivityImplementationType.SUBPROCESS_LITERAL, subprocessActivity.getImplementation());
+ assertEquals(subprocess, subprocessActivity.getImplementationProcess());
+
+ }
+
+ private ModelType transformModel(Definitions definitions, String fileOutput) {
+ TransformationControl transf = TransformationControl.getInstance(new DialectCarnotXPDL());
+ transf.transformToTarget(definitions, fileOutput);
+ return (ModelType)transf.getTargetModel();
+ }
+
+ private Definitions loadBpmnModel(String bpmnFile) {
+ String path = getResourceFilePath(bpmnFile);
+ Definitions definitions = null;
+ try {
+ Bpmn2Resource bpmnModel = BPMNModelImporter.importModel(path);
+ definitions = BPMNModelImporter.getDefinitions(bpmnModel);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return definitions;
+ }
+
+ private String getResourceFilePath(String relativePath) {
+ URL fileUri = getClass().getClassLoader().getResource(relativePath);
+ return fileUri.getPath();
+ }
+
+ private static void createOutputDir() {
+ String path = Bpmn2CarnotXPDLTest.class.getClassLoader().getResource("").getPath();
+ path += "/" + OUTPUT_DIR;
+ File f = new File(path);
+ if (!f.exists()) f.mkdir();
+ }
+
+ private static ProcessDefinitionType findProcessInModel(ModelType model, String processId) {
+ for (ProcessDefinitionType processDef : model.getProcessDefinition()) {
+ if (processDef.getId().equals(processId)) return processDef;
+ }
+ return null;
+ }
+
+ private ProcessDefinitionType findProcessDefinition(ModelType model, String id) {
+ for (ProcessDefinitionType processDef : model.getProcessDefinition()) {
+ if (processDef.getId().equals(id)) return processDef;
+ }
+ return null;
+ }
+
+ private ActivityType findActivity(ProcessDefinitionType processDef, String id) {
+ for (ActivityType activity : processDef.getActivity()) {
+ if (activity.getId().equals(id)) return activity;
+ }
+ return null;
+ }
+
+ private TransitionType findTransition(ProcessDefinitionType processDef, String id) {
+ for (TransitionType transition : processDef.getTransition()) {
+ if (transition.getId().equals(id)) return transition;
+ }
+ return null;
+ }
+
+ private TriggerType findTrigger(ProcessDefinitionType processDef, String id) {
+ for (TriggerType trigger : processDef.getTrigger()) {
+ if (trigger.getId().equals(id)) return trigger;
+ }
+ return null;
+ }
+
+ private IModelParticipant findParticipant(ModelType model, String id) {
+ for (RoleType role : model.getRole()) {
+ if (role.getId().equals(id)) return role;
+ }
+ for (OrganizationType org : model.getOrganization()) {
+ if (org.getId().equals(id)) return org;
+ }
+ return null;
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/log4j.properties b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/log4j.properties
new file mode 100644
index 0000000..a4a21aa
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/log4j.properties
@@ -0,0 +1,33 @@
+log4j.rootLogger=debugg
+#debug, stdout
+log4j.logger.org.eclipse.stardust.model.bpmn2=debug, R, stdout
+log4j.logger.org.eclipse=debug, Stardust
+log4j.logger.ag.carnot=debug, Stardust
+log = log/
+
+####################################################################
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=${log}/adapter.log
+
+log4j.appender.R.MaxFileSize=100KB
+# one backup file
+log4j.appender.R.MaxBackupIndex=1
+
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
+
+####################################################################
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) \t - %m%n
+
+####################################################################
+
+log4j.appender.Stardust=org.apache.log4j.RollingFileAppender
+log4j.appender.Stardust.File=${log}/stardust.log
+log4j.appender.Stardust.MaxFileSize=100KB
+log4j.appender.Stardust.MaxBackupIndex=1
+log4j.appender.Stardust.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stardust.layout.ConversionPattern=%p %t %c - %m%n
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn
new file mode 100644
index 0000000..325a79b
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/CollapsedSubprocess.bpmn
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="29.06.2012 11:30:07" itp:modificationDate="29.06.2012 11:31:47" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_805507f8-0cdd-44e2-bd27-5f30d4bf88aa" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="TestModelMainProcess" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <subProcess id="TestModelSubProcess" name="Collapsed&#xD;&#xA;SubProcess" itp:isCollapsed="true" itp:logicalSheetId="84213e91-1320-46ca-b242-1a8a4724ef72">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Collapsed&#xD;&#xA;SubProcess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <userTask id="TestModelTaskA" name="UserTask&#xD;&#xA;in Subprocess" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="UserTask&#xD;&#xA;in Subprocess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ </subProcess>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="TestModelMainProcess">
+ <bpmndi:BPMNShape id="_F3D0E277-FBA8-4C1E-A3F3-288E89B7A289" bpmnElement="TestModelSubProcess" isExpanded="false" itp:label="Collapsed&#xD;&#xA;SubProcess" itp:elementType="subProcess">
+ <dc:Bounds x="121.889763779528" y="113.385826771654" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7814d733-1169-4791-b53f-4fe462a23900">
+ <dc:Bounds x="133.92" y="113.235590551181" width="60.48" height="33.84" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+ <bpmndi:BPMNDiagram name="Collapsed SubProcess (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_2" bpmnElement="TestModelSubProcess">
+ <bpmndi:BPMNShape id="_97C7663C-B528-431D-BA05-E78A35F34B05" bpmnElement="TestModelTaskA" itp:label="UserTask&#xD;&#xA;in Subprocess" itp:elementType="userTask">
+ <dc:Bounds x="143.149606299213" y="110.551181102362" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7814d733-1169-4791-b53f-4fe462a23900">
+ <dc:Bounds x="150.84" y="119.715590551181" width="69.84" height="23.76" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_7814d733-1169-4791-b53f-4fe462a23900">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Lane.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Lane.bpmn
new file mode 100644
index 0000000..db3c03d
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Lane.bpmn
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 14:38:54" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <laneSet>
+ <lane id="TestModelLane1" name="Lane 1">
+ <documentation>Documentation Lane 1</documentation>
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Lane 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </lane>
+ </laneSet>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <bpmndi:BPMNShape id="_AC5D1FA3-2DB6-4D5A-92CE-FB3456C4A74B" bpmnElement="TestModelLane1" isHorizontal="true" itp:label="Lane 1" itp:elementType="lane">
+ <dc:Bounds x="85.0393700787401" y="145.984251968504" width="311.811023622047" height="70.8661417322835" />
+ <bpmndi:BPMNLabel labelStyle="_39c44b00-3d42-41da-be5b-9e2a0c5ffef1">
+ <dc:Bounds x="63.36" y="159.315590551181" width="14.4" height="43.92" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_39c44b00-3d42-41da-be5b-9e2a0c5ffef1">
+ <dc:Font name="Arial" size="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerAndPartnerEntityOrg.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerAndPartnerEntityOrg.bpmn
new file mode 100644
index 0000000..9647b27
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerAndPartnerEntityOrg.bpmn
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 15:10:59" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+
+ <partnerEntity id="TestOrganisationA" name="Test Organisation A">
+ <participantRef>TestModelPool1</participantRef>
+ </partnerEntity>
+
+
+ <resource id="TestPerformerRoleA" name="Test Role A"></resource>
+
+ <collaboration id="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <participant id="TestModelPool1" name="Pool 1" processRef="_5561110d-efd3-4218-b5c6-2038bbc4ba3d">
+ <extensionElements>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Pool 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </participant>
+ </collaboration>
+ <process id="_5561110d-efd3-4218-b5c6-2038bbc4ba3d" name="Pool 1" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Pool 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <laneSet>
+ <lane id="TestModelLane1" name="Lane 1">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Lane 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <flowNodeRef>TestModelTaskA</flowNodeRef>
+ <flowNodeRef>TestModelTaskA</flowNodeRef>
+ </lane>
+ <lane id="TestModelLane2" name="Lane 2">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Lane 2" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <flowNodeRef>TestModelTaskB</flowNodeRef>
+ <flowNodeRef>TestModelTaskB</flowNodeRef>
+ </lane>
+ </laneSet>
+ <userTask id="TestModelTaskA" name="Task A" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task A" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <performer id="TestPerformerTaskA" name="Test Performer Task A">
+ <resourceRef>TestPerformerRoleA</resourceRef>
+ </performer>
+
+ </userTask>
+ <userTask id="TestModelTaskB" name="Task B" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task B" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskC" name="Task C" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task C" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <sequenceFlow id="TestModelSequenceAtoB" sourceRef="TestModelTaskA" targetRef="TestModelTaskB">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_7fbbf87f-0a87-487b-ad5a-b6eb6cc9c2e2" sourceRef="TestModelTaskB" targetRef="TestModelTaskC">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <bpmndi:BPMNShape id="_AD141325-0FB6-427F-95A7-44DCCC719152" bpmnElement="TestModelPool1" isHorizontal="true" itp:label="Pool 1" itp:elementType="participant">
+ <dc:Bounds x="93.7700645669291" y="79.3700787401575" width="680.088160629921" height="212.59842519685" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="165.075590551181" width="14.4" height="41.04" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_082CD16B-8C09-4ACD-8552-CF99840DDF21" bpmnElement="TestModelLane1" isHorizontal="true" itp:label="Lane 1" itp:elementType="lane">
+ <dc:Bounds x="93.7700645669291" y="79.3700787401575" width="680.088160629921" height="70.8661417322835" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="93.0755905511811" width="14.4" height="43.92" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_940DF887-B83D-40F0-ABD1-9F46E1BB1246" bpmnElement="TestModelLane2" isHorizontal="true" itp:label="Lane 2" itp:elementType="lane">
+ <dc:Bounds x="93.7700645669291" y="150.236220472441" width="680.088160629921" height="70.8661417322835" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="163.635590551181" width="14.4" height="43.92" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_158B096D-D2E6-4C4D-96B3-65F3604554E2" bpmnElement="TestModelTaskA" itp:label="Task A" itp:elementType="userTask">
+ <dc:Bounds x="178.582677165354" y="93.5433070866142" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="201.96" y="108.195590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_2FE1C5C0-6337-4A71-AE6C-8E035FC2BBFC" bpmnElement="TestModelTaskB" itp:label="Task B" itp:elementType="userTask">
+ <dc:Bounds x="311.811023622047" y="164.409448818898" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="335.16" y="178.755590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_CE06FB34-8947-46B1-A7D1-512249FEFF1E" bpmnElement="TestModelTaskC" itp:label="Task C" itp:elementType="userTask">
+ <dc:Bounds x="445.03937007874" y="238.110236220472" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="468.36" y="252.195590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_C29998D6-EA29-4212-9FB3-62FA003F4951" bpmnElement="TestModelSequenceAtoB" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="263.622047244095" y="114.803149606299" />
+ <di:waypoint x="274.251968503937" y="114.803149606299" />
+ <di:waypoint x="274.251968503937" y="185.669291338583" />
+ <di:waypoint x="311.811023622047" y="185.669291338583" />
+ <bpmndi:BPMNLabel labelStyle="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Bounds x="270.36" y="156.795590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_73D93602-6735-4C7D-875A-B45252C4E8FE" bpmnElement="_7fbbf87f-0a87-487b-ad5a-b6eb6cc9c2e2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="396.850393700787" y="185.669291338583" />
+ <di:waypoint x="407.48031496063" y="185.669291338583" />
+ <di:waypoint x="407.48031496063" y="259.370078740158" />
+ <di:waypoint x="445.03937007874" y="259.370078740158" />
+ <bpmndi:BPMNLabel labelStyle="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Bounds x="403.56" y="229.515590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Font name="Arial" size="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerFromPoolAndLane.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerFromPoolAndLane.bpmn
new file mode 100644
index 0000000..1d504bf
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/PerformerFromPoolAndLane.bpmn
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 15:10:59" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <collaboration id="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <participant id="TestModelPool1" name="Pool 1" processRef="_5561110d-efd3-4218-b5c6-2038bbc4ba3d">
+ <extensionElements>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Pool 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </participant>
+ </collaboration>
+ <process id="_5561110d-efd3-4218-b5c6-2038bbc4ba3d" name="Pool 1" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Pool 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <laneSet>
+ <lane id="TestModelLane1" name="Lane 1">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Lane 1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <flowNodeRef>TestModelTaskA</flowNodeRef>
+ <flowNodeRef>TestModelTaskA</flowNodeRef>
+ </lane>
+ <lane id="TestModelLane2" name="Lane 2">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Lane 2" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <flowNodeRef>TestModelTaskB</flowNodeRef>
+ <flowNodeRef>TestModelTaskB</flowNodeRef>
+ </lane>
+ </laneSet>
+ <userTask id="TestModelTaskA" name="Task A" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task A" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskB" name="Task B" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task B" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskC" name="Task C" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task C" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <sequenceFlow id="TestModelSequenceAtoB" sourceRef="TestModelTaskA" targetRef="TestModelTaskB">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_7fbbf87f-0a87-487b-ad5a-b6eb6cc9c2e2" sourceRef="TestModelTaskB" targetRef="TestModelTaskC">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <bpmndi:BPMNShape id="_AD141325-0FB6-427F-95A7-44DCCC719152" bpmnElement="TestModelPool1" isHorizontal="true" itp:label="Pool 1" itp:elementType="participant">
+ <dc:Bounds x="93.7700645669291" y="79.3700787401575" width="680.088160629921" height="212.59842519685" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="165.075590551181" width="14.4" height="41.04" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_082CD16B-8C09-4ACD-8552-CF99840DDF21" bpmnElement="TestModelLane1" isHorizontal="true" itp:label="Lane 1" itp:elementType="lane">
+ <dc:Bounds x="93.7700645669291" y="79.3700787401575" width="680.088160629921" height="70.8661417322835" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="93.0755905511811" width="14.4" height="43.92" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_940DF887-B83D-40F0-ABD1-9F46E1BB1246" bpmnElement="TestModelLane2" isHorizontal="true" itp:label="Lane 2" itp:elementType="lane">
+ <dc:Bounds x="93.7700645669291" y="150.236220472441" width="680.088160629921" height="70.8661417322835" />
+ <bpmndi:BPMNLabel labelStyle="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Bounds x="72" y="163.635590551181" width="14.4" height="43.92" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_158B096D-D2E6-4C4D-96B3-65F3604554E2" bpmnElement="TestModelTaskA" itp:label="Task A" itp:elementType="userTask">
+ <dc:Bounds x="178.582677165354" y="93.5433070866142" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="201.96" y="108.195590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_2FE1C5C0-6337-4A71-AE6C-8E035FC2BBFC" bpmnElement="TestModelTaskB" itp:label="Task B" itp:elementType="userTask">
+ <dc:Bounds x="311.811023622047" y="164.409448818898" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="335.16" y="178.755590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_CE06FB34-8947-46B1-A7D1-512249FEFF1E" bpmnElement="TestModelTaskC" itp:label="Task C" itp:elementType="userTask">
+ <dc:Bounds x="445.03937007874" y="238.110236220472" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Bounds x="468.36" y="252.195590551181" width="38.16" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_C29998D6-EA29-4212-9FB3-62FA003F4951" bpmnElement="TestModelSequenceAtoB" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="263.622047244095" y="114.803149606299" />
+ <di:waypoint x="274.251968503937" y="114.803149606299" />
+ <di:waypoint x="274.251968503937" y="185.669291338583" />
+ <di:waypoint x="311.811023622047" y="185.669291338583" />
+ <bpmndi:BPMNLabel labelStyle="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Bounds x="270.36" y="156.795590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_73D93602-6735-4C7D-875A-B45252C4E8FE" bpmnElement="_7fbbf87f-0a87-487b-ad5a-b6eb6cc9c2e2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="396.850393700787" y="185.669291338583" />
+ <di:waypoint x="407.48031496063" y="185.669291338583" />
+ <di:waypoint x="407.48031496063" y="259.370078740158" />
+ <di:waypoint x="445.03937007874" y="259.370078740158" />
+ <bpmndi:BPMNLabel labelStyle="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Bounds x="403.56" y="229.515590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_ff9cc401-a712-4307-be78-49b8608a04f2">
+ <dc:Font name="Arial" size="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_69c7560c-ead4-446b-93a8-b7ca20626ace">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_96eaa0fb-7c0b-4af2-8497-9b3c1f6a7a14">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Pool.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Pool.bpmn
new file mode 100644
index 0000000..10d4e44
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/Pool.bpmn
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 14:38:20" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <collaboration id="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <participant id="TestModelPool1" name="Pool1">
+ <documentation>Documentation Pool 1</documentation>
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Pool1" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </participant>
+ </collaboration>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_ba2d7f88-eb78-443e-bd7f-ff5a37de8ef4">
+ <bpmndi:BPMNShape id="_F6A52A95-CAE2-4995-944A-6C40C574E213" bpmnElement="TestModelPool1" isHorizontal="true" itp:label="Pool1" itp:elementType="participant">
+ <dc:Bounds x="79.5968362204724" y="73.7007874015748" width="680.088160629921" height="212.59842519685" />
+ <bpmndi:BPMNLabel labelStyle="_4b9e53cf-adcd-4387-8329-e69bc65b30c5">
+ <dc:Bounds x="58.32" y="160.755590551181" width="14.4" height="38.16" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_4b9e53cf-adcd-4387-8329-e69bc65b30c5">
+ <dc:Font name="Arial" size="12" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventMessage.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventMessage.bpmn
new file mode 100644
index 0000000..b2ba9a5
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventMessage.bpmn
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 09:35:36" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <startEvent id="TestModelStartEventId" name="MessageStartEvent">
+ <documentation>Documentation: Message Start Event</documentation>
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="MessageStartEvent" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <messageEventDefinition />
+ </startEvent>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_a1d182de-7971-4662-9009-cab25f298bdd">
+ <bpmndi:BPMNShape id="_B962DEFE-088F-483D-8CDE-4B5A8CDDE82E" bpmnElement="TestModelStartEventId" itp:label="MessageStartEvent" itp:elementType="startEvent">
+ <dc:Bounds x="76.5354330708661" y="119.055118110236" width="17.007874015748" height="17.007874015748" />
+ <bpmndi:BPMNLabel labelStyle="_b132c033-84fd-4440-92e8-507dded792f2">
+ <dc:Bounds x="30" y="159.629653930664" width="25.4134788513184" height="3.74070143699646" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_b132c033-84fd-4440-92e8-507dded792f2">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventNone.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventNone.bpmn
new file mode 100644
index 0000000..59aeb93
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventNone.bpmn
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 09:34:58" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <startEvent id="TestModelStartEventId" name="NoneStartEvent">
+ <documentation>Documentation: None Start Event</documentation>
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="NoneStartEvent" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </startEvent>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_a1d182de-7971-4662-9009-cab25f298bdd">
+ <bpmndi:BPMNShape id="_B962DEFE-088F-483D-8CDE-4B5A8CDDE82E" bpmnElement="TestModelStartEventId" itp:label="NoneStartEvent" itp:elementType="startEvent">
+ <dc:Bounds x="76.5354330708661" y="119.055118110236" width="17.007874015748" height="17.007874015748" />
+ <bpmndi:BPMNLabel labelStyle="_e4b37c68-f7cd-4063-94b8-f58ac85d9d8a">
+ <dc:Bounds x="30" y="159.629653930664" width="20.7088241577148" height="3.74070143699646" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_e4b37c68-f7cd-4063-94b8-f58ac85d9d8a">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn
new file mode 100644
index 0000000..5fd17ad
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/StartEventTimer.bpmn
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 09:37:13" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <startEvent id="TestModelStartEventId" name="TimerStartEvent">
+ <documentation>Documentation: Timer Start Event</documentation>
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="TimerStartEvent" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <timerEventDefinition>
+ <timeCycle>CycleValue</timeCycle>
+ </timerEventDefinition>
+ </startEvent>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_a1d182de-7971-4662-9009-cab25f298bdd">
+ <bpmndi:BPMNShape id="_B962DEFE-088F-483D-8CDE-4B5A8CDDE82E" bpmnElement="TestModelStartEventId" itp:label="TimerStartEvent" itp:elementType="startEvent">
+ <dc:Bounds x="76.5354330708661" y="119.055118110236" width="17.007874015748" height="17.007874015748" />
+ <bpmndi:BPMNLabel labelStyle="_d0ad1082-aeb8-4706-b536-8c1fb9156842">
+ <dc:Bounds x="30" y="159.629653930664" width="21.1732330322266" height="3.74070143699646" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_d0ad1082-aeb8-4706-b536-8c1fb9156842">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTask.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTask.bpmn
new file mode 100644
index 0000000..bf98779
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/UserTask.bpmn
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="28.06.2012 09:29:58" itp:modificationDate="28.06.2012 13:54:38" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_9be861c8-bb4a-4f30-a848-d7f4eb178051" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_a1d182de-7971-4662-9009-cab25f298bdd" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <userTask id="TestModelTaskA" name="Task A" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Task A" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_a1d182de-7971-4662-9009-cab25f298bdd">
+ <bpmndi:BPMNShape id="_9758DD46-72C0-4A6C-BE0E-7B5ADC5EEFDF" bpmnElement="TestModelTaskA" itp:label="UserTask" itp:elementType="userTask">
+ <dc:Bounds x="116.220472440945" y="126.141732283465" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_32afcc3f-70c6-4c78-931e-fbb1d248dce5">
+ <dc:Bounds x="133.56" y="140.595590551181" width="49.68" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_32afcc3f-70c6-4c78-931e-fbb1d248dce5">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/XORGatewaysSingle.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/XORGatewaysSingle.bpmn
new file mode 100644
index 0000000..36ecfda
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/XORGatewaysSingle.bpmn
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="27.06.2012 18:05:19" itp:modificationDate="28.06.2012 15:37:00" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_3e3f9919-88b7-4628-ab18-e5ca675dbc64" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_7242afea-9c6c-4892-9875-f6390346905c" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <exclusiveGateway id="TestModelXORSplitGateway" name="SplitXOrGate" gatewayDirection="Diverging" default="TestModelDefaultSequenceFlow">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="SplitXOrGate" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </exclusiveGateway>
+ <exclusiveGateway id="TestModelXORJoinGateway" name="JoinXOrGate" gatewayDirection="Converging">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="JoinXOrGate" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </exclusiveGateway>
+ <sequenceFlow id="_cb8558bb-fc7f-48d9-89fe-d2df6e37bbd2" sourceRef="TestModelTaskA" targetRef="TestModelXORSplitGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="TestModelConditionalSequenceFlow1" name="Condition to B" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskB">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Condition to B" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <conditionExpression><documentation>test='Condition to B'</documentation></conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="_b6a578ba-d556-4867-ab1d-31d05a33a35e" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskC">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <conditionExpression>_undefined</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="TestModelDefaultSequenceFlow" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskD">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_fb92c3da-c942-4350-bc9f-1b87e5f70023" sourceRef="TestModelTaskB" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_64cf5e6a-18c6-4689-ba93-2865f67c16d6" sourceRef="TestModelTaskC" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_5af8c969-22a2-485a-8356-8af176a7b3d2" sourceRef="TestModelTaskD" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_53472ed0-6bda-4cc3-8119-feb7e93b0ddb" sourceRef="TestModelXORJoinGateway" targetRef="TestModelTaskE">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <userTask id="TestModelTaskA" name="a" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="a" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskB" name="b" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="b" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskC" name="c" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="c" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskD" name="d" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="d" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskE" name="e" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="e" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_7242afea-9c6c-4892-9875-f6390346905c">
+ <bpmndi:BPMNShape id="_7C016911-4224-437D-998A-4954EBFB6A97" bpmnElement="TestModelXORSplitGateway" isMarkerVisible="false" itp:label="SplitXOrGate" itp:elementType="exclusiveGateway">
+ <dc:Bounds x="185.669291338583" y="158.385826771654" width="42.5196850393701" height="31.8897637795276" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="181.8" y="193.155590551181" width="49.68" height="9.36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_B362E574-C11E-4B42-ADE2-EEC6DF06C3E9" bpmnElement="TestModelXORJoinGateway" isMarkerVisible="false" itp:label="JoinXOrGate" itp:elementType="exclusiveGateway">
+ <dc:Bounds x="388.346456692913" y="158.385826771654" width="42.5196850393701" height="31.8897637795276" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="385.56" y="193.155590551181" width="48.24" height="9.36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_C5401613-4DF3-42B2-BF6F-210FC760806E" bpmnElement="_cb8558bb-fc7f-48d9-89fe-d2df6e37bbd2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="164.409448818898" y="174.330708661417" />
+ <di:waypoint x="185.669291338583" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="171.72" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_1542AC9F-2FD4-4179-AAEC-5992B2FFC1E8" bpmnElement="TestModelConditionalSequenceFlow1" itp:label="Condition to B" itp:elementType="sequenceFlow">
+ <di:waypoint x="206.929133858268" y="158.385826771654" />
+ <di:waypoint x="206.929133858268" y="90.7086614173229" />
+ <di:waypoint x="274.96062992126" y="90.7086614173229" />
+ <di:waypoint x="274.96062992126" y="90.7086614173228" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="181.44" y="83.3555905511811" width="60.48" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_6BFC849C-5A53-47FD-BDB9-E45120C1C03C" bpmnElement="_b6a578ba-d556-4867-ab1d-31d05a33a35e" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="228.188976377953" y="174.330708661417" />
+ <di:waypoint x="274.96062992126" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="248.76" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_C7F6000C-EED2-4098-9ABB-05B10A064B90" bpmnElement="TestModelDefaultSequenceFlow" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="206.929133858268" y="190.275590551181" />
+ <di:waypoint x="206.929133858268" y="257.952755905512" />
+ <di:waypoint x="274.96062992126" y="257.952755905512" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="207.72" y="248.235590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_59E68D69-5965-4B22-888E-509458461F50" bpmnElement="_fb92c3da-c942-4350-bc9f-1b87e5f70023" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="90.7086614173228" />
+ <di:waypoint x="409.606299212598" y="90.7086614173228" />
+ <di:waypoint x="409.606299212598" y="158.385826771654" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="405.72" y="94.8755905511812" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_66573C18-B7AF-4670-BC45-EC7A18ADA015" bpmnElement="_64cf5e6a-18c6-4689-ba93-2865f67c16d6" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="174.330708661417" />
+ <di:waypoint x="388.346456692913" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="370.44" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_1A524BEE-F7CC-4149-8501-B62E4934EE57" bpmnElement="_5af8c969-22a2-485a-8356-8af176a7b3d2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="257.952755905512" />
+ <di:waypoint x="409.606299212598" y="257.952755905512" />
+ <di:waypoint x="409.606299212598" y="190.275590551181" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="405.72" y="236.715590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_B8EDA2CE-4127-4AA4-B9B9-1BE490CE7742" bpmnElement="_53472ed0-6bda-4cc3-8119-feb7e93b0ddb" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="430.866141732284" y="174.330708661417" />
+ <di:waypoint x="470.551181102362" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="447.48" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_09177A98-B288-465F-86DA-4C6A685A8BAB" bpmnElement="TestModelTaskA" itp:label="a" itp:elementType="userTask">
+ <dc:Bounds x="79.3700787401575" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="115.56" y="167.235590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_DFF46673-9E63-4877-A0B7-BAAB9C42DA76" bpmnElement="TestModelTaskB" itp:label="b" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="69.4488188976378" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.4" y="83.7155905511812" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_8969DD4B-F91B-4255-916D-0F4695BCF01D" bpmnElement="TestModelTaskC" itp:label="c" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.76" y="167.235590551181" width="11.52" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_24FA24B4-DBB0-4843-8523-A85FBE9289FB" bpmnElement="TestModelTaskD" itp:label="d" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="236.692913385827" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.4" y="250.755590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_51146E01-297E-46A4-9A99-A9DF4CEF4CC8" bpmnElement="TestModelTaskE" itp:label="e" itp:elementType="userTask">
+ <dc:Bounds x="470.551181102362" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="507.24" y="167.235590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMN20.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMN20.xsd
new file mode 100644
index 0000000..463ef6e
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMN20.xsd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
+ targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">
+
+ <xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/DI" schemaLocation="BPMNDI.xsd"/>
+ <xsd:include schemaLocation="Semantic.xsd"/>
+
+ <xsd:element name="definitions" type="tDefinitions"/>
+ <xsd:complexType name="tDefinitions">
+ <xsd:sequence>
+ <xsd:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="rootElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="bpmndi:BPMNDiagram" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="relationship" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="expressionLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/1999/XPath"/>
+ <xsd:attribute name="typeLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/2001/XMLSchema"/>
+ <xsd:attribute name="exporter" type="xsd:string"/>
+ <xsd:attribute name="exporterVersion" type="xsd:string"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="import" type="tImport"/>
+ <xsd:complexType name="tImport">
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:string" use="required"/>
+ <xsd:attribute name="importType" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMNDI.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMNDI.xsd
new file mode 100644
index 0000000..615740f
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/BPMNDI.xsd
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/BPMN/20100524/DI" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DC" schemaLocation="DC.xsd" />
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DI" schemaLocation="DI.xsd" />
+
+ <xsd:element name="BPMNDiagram" type="bpmndi:BPMNDiagram" />
+ <xsd:element name="BPMNPlane" type="bpmndi:BPMNPlane" />
+ <xsd:element name="BPMNLabelStyle" type="bpmndi:BPMNLabelStyle" />
+ <xsd:element name="BPMNShape" type="bpmndi:BPMNShape" substitutionGroup="di:DiagramElement" />
+ <xsd:element name="BPMNLabel" type="bpmndi:BPMNLabel" />
+ <xsd:element name="BPMNEdge" type="bpmndi:BPMNEdge" substitutionGroup="di:DiagramElement" />
+
+ <xsd:complexType name="BPMNDiagram">
+ <xsd:complexContent>
+ <xsd:extension base="di:Diagram">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNPlane" />
+ <xsd:element ref="bpmndi:BPMNLabelStyle" maxOccurs="unbounded" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNPlane">
+ <xsd:complexContent>
+ <xsd:extension base="di:Plane">
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNEdge">
+ <xsd:complexContent>
+ <xsd:extension base="di:LabeledEdge">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNLabel" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ <xsd:attribute name="sourceElement" type="xsd:QName" />
+ <xsd:attribute name="targetElement" type="xsd:QName" />
+ <xsd:attribute name="messageVisibleKind" type="bpmndi:MessageVisibleKind" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNShape">
+ <xsd:complexContent>
+ <xsd:extension base="di:LabeledShape">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNLabel" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ <xsd:attribute name="isHorizontal" type="xsd:boolean" />
+ <xsd:attribute name="isExpanded" type="xsd:boolean" />
+ <xsd:attribute name="isMarkerVisible" type="xsd:boolean" />
+ <xsd:attribute name="isMessageVisible" type="xsd:boolean" />
+ <xsd:attribute name="participantBandKind" type="bpmndi:ParticipantBandKind" />
+ <xsd:attribute name="choreographyActivityShape" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNLabel">
+ <xsd:complexContent>
+ <xsd:extension base="di:Label">
+ <xsd:attribute name="labelStyle" type="xsd:QName" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNLabelStyle">
+ <xsd:complexContent>
+ <xsd:extension base="di:Style">
+ <xsd:sequence>
+ <xsd:element ref="dc:Font" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="ParticipantBandKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="top_initiating" />
+ <xsd:enumeration value="middle_initiating" />
+ <xsd:enumeration value="bottom_initiating" />
+ <xsd:enumeration value="top_non_initiating" />
+ <xsd:enumeration value="middle_non_initiating" />
+ <xsd:enumeration value="bottom_non_initiating" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="MessageVisibleKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="initiating" />
+ <xsd:enumeration value="non_initiating" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+</xsd:schema>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DC.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DC.xsd
new file mode 100644
index 0000000..80e9fa8
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DC.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" targetNamespace="http://www.omg.org/spec/DD/20100524/DC" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:element name="Font" type="dc:Font" />
+ <xsd:element name="Point" type="dc:Point" />
+ <xsd:element name="Bounds" type="dc:Bounds" />
+
+ <xsd:complexType name="Font">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="size" type="xsd:double" />
+ <xsd:attribute name="isBold" type="xsd:boolean" />
+ <xsd:attribute name="isItalic" type="xsd:boolean" />
+ <xsd:attribute name="isUnderline" type="xsd:boolean" />
+ <xsd:attribute name="isStrikeThrough" type="xsd:boolean" />
+ </xsd:complexType>
+
+ <xsd:complexType name="Point">
+ <xsd:attribute name="x" type="xsd:double" use="required" />
+ <xsd:attribute name="y" type="xsd:double" use="required" />
+ </xsd:complexType>
+
+ <xsd:complexType name="Bounds">
+ <xsd:attribute name="x" type="xsd:double" use="required" />
+ <xsd:attribute name="y" type="xsd:double" use="required" />
+ <xsd:attribute name="width" type="xsd:double" use="required" />
+ <xsd:attribute name="height" type="xsd:double" use="required" />
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DI.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DI.xsd
new file mode 100644
index 0000000..4023d28
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/DI.xsd
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/DD/20100524/DI" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DC" schemaLocation="DC.xsd" />
+
+ <xsd:element name="DiagramElement" type="di:DiagramElement" />
+ <xsd:element name="Diagram" type="di:Diagram" />
+ <xsd:element name="Style" type="di:Style" />
+ <xsd:element name="Node" type="di:Node" />
+ <xsd:element name="Edge" type="di:Edge" />
+ <xsd:element name="Shape" type="di:Shape" />
+ <xsd:element name="Plane" type="di:Plane" />
+ <xsd:element name="LabeledEdge" type="di:LabeledEdge" />
+ <xsd:element name="Label" type="di:Label" />
+ <xsd:element name="LabeledShape" type="di:LabeledShape" />
+
+ <xsd:complexType abstract="true" name="DiagramElement">
+ <xsd:sequence>
+ <xsd:element name="extension" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Diagram">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="documentation" type="xsd:string" />
+ <xsd:attribute name="resolution" type="xsd:double" />
+ <xsd:attribute name="id" type="xsd:ID" />
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Node">
+ <xsd:complexContent>
+ <xsd:extension base="di:DiagramElement" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Edge">
+ <xsd:complexContent>
+ <xsd:extension base="di:DiagramElement">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="2" name="waypoint" type="dc:Point" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="LabeledEdge">
+ <xsd:complexContent>
+ <xsd:extension base="di:Edge" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Shape">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="dc:Bounds" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="LabeledShape">
+ <xsd:complexContent>
+ <xsd:extension base="di:Shape" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Label">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="dc:Bounds" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Plane">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="di:DiagramElement" maxOccurs="unbounded" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Style">
+ <xsd:attribute name="id" type="xsd:ID" />
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/Semantic.xsd b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/Semantic.xsd
new file mode 100644
index 0000000..1c611da
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/schemas/Semantic.xsd
@@ -0,0 +1,1562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">
+
+ <xsd:element name="activity" type="tActivity"/>
+ <xsd:complexType name="tActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="loopCharacteristics" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="isForCompensation" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="startQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="completionQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="adHocSubProcess" type="tAdHocSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tAdHocSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tSubProcess">
+ <xsd:sequence>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="cancelRemainingInstances" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="ordering" type="tAdHocOrdering"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAdHocOrdering">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Parallel"/>
+ <xsd:enumeration value="Sequential"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="artifact" type="tArtifact"/>
+ <xsd:complexType name="tArtifact" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="assignment" type="tAssignment" />
+ <xsd:complexType name="tAssignment">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="from" type="tExpression" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="to" type="tExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="association" type="tAssociation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="associationDirection" type="tAssociationDirection" default="None"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAssociationDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="One"/>
+ <xsd:enumeration value="Both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="auditing" type="tAuditing"/>
+ <xsd:complexType name="tAuditing">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="baseElement" type="tBaseElement"/>
+ <xsd:complexType name="tBaseElement" abstract="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extensionElements" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="baseElementWithMixedContent" type="tBaseElementWithMixedContent"/>
+ <xsd:complexType name="tBaseElementWithMixedContent" abstract="true" mixed="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extensionElements" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="boundaryEvent" type="tBoundaryEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBoundaryEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="cancelActivity" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="attachedToRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="businessRuleTask" type="tBusinessRuleTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callableElement" type="tCallableElement"/>
+ <xsd:complexType name="tCallableElement">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="supportedInterfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="ioBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callActivity" type="tCallActivity" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallActivity">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:attribute name="calledElement" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callChoreography" type="tCallChoreography" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledChoreographyRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callConversation" type="tCallConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tCallConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledCollaborationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="cancelEventDefinition" type="tCancelEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCancelEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="catchEvent" type="tCatchEvent"/>
+ <xsd:complexType name="tCatchEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="parallelMultiple" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="category" type="tCategory" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCategory">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="categoryValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="categoryValue" type="tCategoryValue"/>
+ <xsd:complexType name="tCategoryValue">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="value" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreography" type="tChoreography" substitutionGroup="collaboration"/>
+ <xsd:complexType name="tChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tCollaboration">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreographyActivity" type="tChoreographyActivity"/>
+ <xsd:complexType name="tChoreographyActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="2" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="loopType" type="tChoreographyLoopType" default="None"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tChoreographyLoopType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Standard"/>
+ <xsd:enumeration value="MultiInstanceSequential"/>
+ <xsd:enumeration value="MultiInstanceParallel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="choreographyTask" type="tChoreographyTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="1" maxOccurs="2"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="collaboration" type="tCollaboration" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCollaboration">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlowAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="choreographyRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationLink" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="compensateEventDefinition" type="tCompensateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCompensateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="waitForCompletion" type="xsd:boolean"/>
+ <xsd:attribute name="activityRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexBehaviorDefinition" type="tComplexBehaviorDefinition"/>
+ <xsd:complexType name="tComplexBehaviorDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="event" type="tImplicitThrowEvent" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexGateway" type="tComplexGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tComplexGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:sequence>
+ <xsd:element name="activationCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="default" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conditionalEventDefinition" type="tConditionalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tConditionalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tExpression"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversation" type="tConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationAssociation" type="tConversationAssociation"/>
+ <xsd:complexType name="tConversationAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="innerConversationNodeRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="outerConversationNodeRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationLink" type="tConversationLink"/>
+ <xsd:complexType name="tConversationLink">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationNode" type="tConversationNode"/>
+ <xsd:complexType name="tConversationNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationKey" type="tCorrelationKey"/>
+ <xsd:complexType name="tCorrelationKey">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="correlationPropertyRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationProperty" type="tCorrelationProperty" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCorrelationProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyRetrievalExpression" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyBinding" type="tCorrelationPropertyBinding"/>
+ <xsd:complexType name="tCorrelationPropertyBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataPath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationPropertyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyRetrievalExpression" type="tCorrelationPropertyRetrievalExpression"/>
+ <xsd:complexType name="tCorrelationPropertyRetrievalExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="messagePath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationSubscription" type="tCorrelationSubscription"/>
+ <xsd:complexType name="tCorrelationSubscription">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataAssociation" type="tDataAssociation" />
+ <xsd:complexType name="tDataAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="sourceRef" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="targetRef" type="xsd:IDREF" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="transformation" type="tFormalExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInput" type="tDataInput" />
+ <xsd:complexType name="tDataInput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName" />
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInputAssociation" type="tDataInputAssociation" />
+ <xsd:complexType name="tDataInputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataObject" type="tDataObject" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataObject">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataObjectReference" type="tDataObjectReference" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataObjectReference">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="dataObjectRef" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutput" type="tDataOutput" />
+ <xsd:complexType name="tDataOutput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional" />
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutputAssociation" type="tDataOutputAssociation" />
+ <xsd:complexType name="tDataOutputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataState" type="tDataState" />
+ <xsd:complexType name="tDataState">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStore" type="tDataStore" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tDataStore">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="capacity" type="xsd:integer"/>
+ <xsd:attribute name="isUnlimited" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStoreReference" type="tDataStoreReference" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataStoreReference">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="dataStoreRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="documentation" type="tDocumentation"/>
+ <xsd:complexType name="tDocumentation" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:attribute name="textFormat" type="xsd:string" default="text/plain"/>
+ </xsd:complexType>
+
+ <xsd:element name="endEvent" type="tEndEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEndEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="endPoint" type="tEndPoint" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEndPoint">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="error" type="tError" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tError">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="errorCode" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="errorEventDefinition" type="tErrorEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tErrorEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="errorRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalation" type="tEscalation" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEscalation">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="escalationCode" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalationEventDefinition" type="tEscalationEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tEscalationEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="escalationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="event" type="tEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="eventBasedGateway" type="tEventBasedGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEventBasedGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="eventGatewayType" type="tEventBasedGatewayType" default="Exclusive"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tEventBasedGatewayType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Exclusive"/>
+ <xsd:enumeration value="Parallel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="eventDefinition" type="tEventDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEventDefinition" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="exclusiveGateway" type="tExclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tExclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="expression" type="tExpression"/>
+ <xsd:complexType name="tExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElementWithMixedContent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="extension" type="tExtension"/>
+ <xsd:complexType name="tExtension">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="definition" type="xsd:QName"/>
+ <xsd:attribute name="mustUnderstand" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+
+ <xsd:element name="extensionElements" type="tExtensionElements" />
+ <xsd:complexType name="tExtensionElements">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="flowElement" type="tFlowElement"/>
+ <xsd:complexType name="tFlowElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="categoryValueRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="flowNode" type="tFlowNode"/>
+ <xsd:complexType name="tFlowNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="incoming" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outgoing" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="formalExpression" type="tFormalExpression" substitutionGroup="expression"/>
+ <xsd:complexType name="tFormalExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tExpression">
+ <xsd:attribute name="language" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="evaluatesToTypeRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="gateway" type="tGateway" abstract="true"/>
+ <xsd:complexType name="tGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:attribute name="gatewayDirection" type="tGatewayDirection" default="Unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tGatewayDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Unspecified"/>
+ <xsd:enumeration value="Converging"/>
+ <xsd:enumeration value="Diverging"/>
+ <xsd:enumeration value="Mixed"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="globalBusinessRuleTask" type="tGlobalBusinessRuleTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalChoreographyTask" type="tGlobalChoreographyTask" substitutionGroup="choreography"/>
+ <xsd:complexType name="tGlobalChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreography">
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="globalConversation" type="tGlobalConversation" substitutionGroup="collaboration"/>
+ <xsd:complexType name="tGlobalConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tCollaboration"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalManualTask" type="tGlobalManualTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalScriptTask" type="tGlobalScriptTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptLanguage" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalTask" type="tGlobalTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalTask">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalUserTask" type="tGlobalUserTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="group" type="tGroup" substitutionGroup="artifact"/>
+ <xsd:complexType name="tGroup">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="categoryValueRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="humanPerformer" type="tHumanPerformer" substitutionGroup="performer"/>
+ <xsd:complexType name="tHumanPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tImplementation">
+ <xsd:union memberTypes="xsd:anyURI">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="##unspecified" />
+ <xsd:enumeration value="##WebService" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+
+ <xsd:element name="implicitThrowEvent" type="tImplicitThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tImplicitThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inclusiveGateway" type="tInclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tInclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inputSet" type="tInputSet" />
+ <xsd:complexType name="tInputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="interface" type="tInterface" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tInterface">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="operation" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="implementationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateCatchEvent" type="tIntermediateCatchEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateCatchEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateThrowEvent" type="tIntermediateThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioBinding" type="tInputOutputBinding" />
+ <xsd:complexType name="tInputOutputBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="operationRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="inputDataRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="outputDataRef" type="xsd:IDREF" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioSpecification" type="tInputOutputSpecification" />
+ <xsd:complexType name="tInputOutputSpecification">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="itemDefinition" type="tItemDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tItemDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="itemKind" type="tItemKind" default="Information"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tItemKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Information"/>
+ <xsd:enumeration value="Physical"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="lane" type="tLane"/>
+ <xsd:complexType name="tLane">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="partitionElement" type="tBaseElement" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="flowNodeRef" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="childLaneSet" type="tLaneSet" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="partitionElementRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="laneSet" type="tLaneSet"/>
+ <xsd:complexType name="tLaneSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="lane" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="linkEventDefinition" type="tLinkEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tLinkEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="source" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="target" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="loopCharacteristics" type="tLoopCharacteristics"/>
+ <xsd:complexType name="tLoopCharacteristics" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="manualTask" type="tManualTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="message" type="tMessage" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tMessage">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="itemRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageEventDefinition" type="tMessageEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tMessageEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="operationRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlow" type="tMessageFlow"/>
+ <xsd:complexType name="tMessageFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlowAssociation" type="tMessageFlowAssociation"/>
+ <xsd:complexType name="tMessageFlowAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="innerMessageFlowRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="outerMessageFlowRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="monitoring" type="tMonitoring"/>
+ <xsd:complexType name="tMonitoring">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="multiInstanceLoopCharacteristics" type="tMultiInstanceLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tMultiInstanceLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCardinality" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataInputRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataOutputRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="inputDataItem" type="tDataInput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="outputDataItem" type="tDataOutput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="complexBehaviorDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="isSequential" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="behavior" type="tMultiInstanceFlowCondition" default="All"/>
+ <xsd:attribute name="oneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="noneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tMultiInstanceFlowCondition">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="One"/>
+ <xsd:enumeration value="All"/>
+ <xsd:enumeration value="Complex"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="operation" type="tOperation"/>
+ <xsd:complexType name="tOperation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="inMessageRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outMessageRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="errorRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="implementationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="outputSet" type="tOutputSet" />
+ <xsd:complexType name="tOutputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="inputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="parallelGateway" type="tParallelGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tParallelGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participant" type="tParticipant"/>
+ <xsd:complexType name="tParticipant">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="interfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="endPointRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantMultiplicity" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="processRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantAssociation" type="tParticipantAssociation"/>
+ <xsd:complexType name="tParticipantAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="innerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantMultiplicity" type="tParticipantMultiplicity"/>
+ <xsd:complexType name="tParticipantMultiplicity">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="minimum" type="xsd:int" default="0"/>
+ <xsd:attribute name="maximum" type="xsd:int" default="1"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerEntity" type="tPartnerEntity" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerEntity">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerRole" type="tPartnerRole" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerRole">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="performer" type="tPerformer" substitutionGroup="resourceRole"/>
+ <xsd:complexType name="tPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tResourceRole"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="potentialOwner" type="tPotentialOwner" substitutionGroup="performer"/>
+ <xsd:complexType name="tPotentialOwner">
+ <xsd:complexContent>
+ <xsd:extension base="tHumanPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="process" type="tProcess" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationSubscription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="supports" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="processType" type="tProcessType" default="None"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="isExecutable" type="xsd:boolean"/>
+ <xsd:attribute name="definitionalCollaborationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tProcessType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Public"/>
+ <xsd:enumeration value="Private"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="property" type="tProperty" />
+ <xsd:complexType name="tProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="receiveTask" type="tReceiveTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tReceiveTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="relationship" type="tRelationship"/>
+ <xsd:complexType name="tRelationship">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="source" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="target" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ <xsd:attribute name="direction" type="tRelationshipDirection"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tRelationshipDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Forward"/>
+ <xsd:enumeration value="Backward"/>
+ <xsd:enumeration value="Both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="rendering" type="tRendering"/>
+ <xsd:complexType name="tRendering">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resource" type="tResource" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tResource">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceParameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceAssignmentExpression" type="tResourceAssignmentExpression"/>
+ <xsd:complexType name="tResourceAssignmentExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameter" type="tResourceParameter"/>
+ <xsd:complexType name="tResourceParameter">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="type" type="xsd:QName"/>
+ <xsd:attribute name="isRequired" type="xsd:boolean"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameterBinding" type="tResourceParameterBinding"/>
+ <xsd:complexType name="tResourceParameterBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="parameterRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceRole" type="tResourceRole"/>
+ <xsd:complexType name="tResourceRole">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="resourceRef" type="xsd:QName"/>
+ <xsd:element ref="resourceParameterBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element ref="resourceAssignmentExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="rootElement" type="tRootElement"/>
+ <xsd:complexType name="tRootElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="scriptTask" type="tScriptTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptFormat" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="script" type="tScript"/>
+ <xsd:complexType name="tScript" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="sendTask" type="tSendTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSendTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="sequenceFlow" type="tSequenceFlow" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSequenceFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="conditionExpression" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="sourceRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="isImmediate" type="xsd:boolean" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="serviceTask" type="tServiceTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tServiceTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="signal" type="tSignal" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tSignal">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="signalEventDefinition" type="tSignalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tSignalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="signalRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="standardLoopCharacteristics" type="tStandardLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tStandardLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCondition" type="tExpression" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="testBefore" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="loopMaximum" type="xsd:integer" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="startEvent" type="tStartEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tStartEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="isInterrupting" type="xsd:boolean" default="true"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subChoreography" type="tSubChoreography" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSubChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subConversation" type="tSubConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tSubConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subProcess" type="tSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:sequence>
+ <xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="triggeredByEvent" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="task" type="tTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTask">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="terminateEventDefinition" type="tTerminateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTerminateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="textAnnotation" type="tTextAnnotation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tTextAnnotation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:sequence>
+ <xsd:element ref="text" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="textFormat" type="xsd:string" default="text/plain"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="text" type="tText"/>
+ <xsd:complexType name="tText" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="throwEvent" type="tThrowEvent"/>
+ <xsd:complexType name="tThrowEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="timerEventDefinition" type="tTimerEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTimerEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:choice>
+ <xsd:element name="timeDate" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="timeDuration" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="timeCycle" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:choice>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="transaction" type="tTransaction" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTransaction">
+ <xsd:complexContent>
+ <xsd:extension base="tSubProcess">
+ <xsd:attribute name="method" type="tTransactionMethod" default="##Compensate"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tTransactionMethod">
+ <xsd:union memberTypes="xsd:anyURI">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="##Compensate" />
+ <xsd:enumeration value="##Image" />
+ <xsd:enumeration value="##Store" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+
+ <xsd:element name="userTask" type="tUserTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/unmod/XORGatewaysSingle.bpmn b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/unmod/XORGatewaysSingle.bpmn
new file mode 100644
index 0000000..f3f994d
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2.transform/src/test/resources/models/bpmn/unmod/XORGatewaysSingle.bpmn
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Created by Process Modeler 5 SR7 for Microsoft Visio (http://www.itp-commerce.com)-->
+<definitions targetNamespace="http://www.itp-commerce.com" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:itp="http://www.itp-commerce.com/BPMN2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL schemas/BPMN20.xsd" exporter="Process Modeler 5 for Microsoft Visio" exporterVersion="5.2769.13758 SR7" itp:name="Mein Diagramm" itp:version="1.0" itp:author="simon nikles" itp:creationDate="27.06.2012 18:05:19" itp:modificationDate="28.06.2012 15:37:00" itp:createdWithVersion="5.2769.13758 SR7" itp:conformanceSubClass="Full" id="_3e3f9919-88b7-4628-ab18-e5ca675dbc64" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC">
+ <process id="_7242afea-9c6c-4892-9875-f6390346905c" name="Hauptprozess" processType="None">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Hauptprozess" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <exclusiveGateway id="TestModelXORSplitGateway" name="SplitXOrGate" gatewayDirection="Diverging" default="TestModelDefaultSequenceFlow">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="SplitXOrGate" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </exclusiveGateway>
+ <exclusiveGateway id="TestModelXORJoinGateway" name="JoinXOrGate" gatewayDirection="Converging">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="JoinXOrGate" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </exclusiveGateway>
+ <sequenceFlow id="_cb8558bb-fc7f-48d9-89fe-d2df6e37bbd2" sourceRef="TestModelTaskA" targetRef="TestModelXORSplitGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="TestModelConditionalSequenceFlow1" name="Condition to B" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskB">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="Condition to B" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <conditionExpression>test='Condition to B'</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="_b6a578ba-d556-4867-ab1d-31d05a33a35e" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskC">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ <conditionExpression>_undefined</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="TestModelDefaultSequenceFlow" sourceRef="TestModelXORSplitGateway" targetRef="TestModelTaskD">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_fb92c3da-c942-4350-bc9f-1b87e5f70023" sourceRef="TestModelTaskB" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_64cf5e6a-18c6-4689-ba93-2865f67c16d6" sourceRef="TestModelTaskC" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_5af8c969-22a2-485a-8356-8af176a7b3d2" sourceRef="TestModelTaskD" targetRef="TestModelXORJoinGateway">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <sequenceFlow id="_53472ed0-6bda-4cc3-8119-feb7e93b0ddb" sourceRef="TestModelXORJoinGateway" targetRef="TestModelTaskE">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </sequenceFlow>
+ <userTask id="TestModelTaskA" name="a" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="a" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskB" name="b" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="b" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskC" name="c" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="c" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskD" name="d" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="d" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ <userTask id="TestModelTaskE" name="e" implementation="unspecified">
+ <extensionElements>
+ <itp:systemDefinedAttributes>
+ <attribute name="Hyperlinks" type="String" value="0 Hyperlinks" />
+ <attribute name="ExternalId" type="String" />
+ <attribute name="KPICost" type="Float" value="1" format="Currency;Fr.;;KPI;2" />
+ <attribute name="KPIDuration" type="Float" value="1" format="Duration;;;KPI;3">
+ <attribute name="KPIActiveTime" type="Float" value="1" format="Duration;;;KPI;3" />
+ <attribute name="KPIWaitTime" type="Float" value="0" format="Duration;;;KPI;3" />
+ </attribute>
+ </itp:systemDefinedAttributes>
+ <itp:localization>
+ <itp:label lang="unspecified" text="e" default="True" />
+ </itp:localization>
+ </extensionElements>
+ </userTask>
+ </process>
+ <bpmndi:BPMNDiagram name="Mein Diagramm (1)" resolution="72">
+ <bpmndi:BPMNPlane id="_1" bpmnElement="_7242afea-9c6c-4892-9875-f6390346905c">
+ <bpmndi:BPMNShape id="_7C016911-4224-437D-998A-4954EBFB6A97" bpmnElement="TestModelXORSplitGateway" isMarkerVisible="false" itp:label="SplitXOrGate" itp:elementType="exclusiveGateway">
+ <dc:Bounds x="185.669291338583" y="158.385826771654" width="42.5196850393701" height="31.8897637795276" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="181.8" y="193.155590551181" width="49.68" height="9.36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_B362E574-C11E-4B42-ADE2-EEC6DF06C3E9" bpmnElement="TestModelXORJoinGateway" isMarkerVisible="false" itp:label="JoinXOrGate" itp:elementType="exclusiveGateway">
+ <dc:Bounds x="388.346456692913" y="158.385826771654" width="42.5196850393701" height="31.8897637795276" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="385.56" y="193.155590551181" width="48.24" height="9.36" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_C5401613-4DF3-42B2-BF6F-210FC760806E" bpmnElement="_cb8558bb-fc7f-48d9-89fe-d2df6e37bbd2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="164.409448818898" y="174.330708661417" />
+ <di:waypoint x="185.669291338583" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="171.72" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_1542AC9F-2FD4-4179-AAEC-5992B2FFC1E8" bpmnElement="TestModelConditionalSequenceFlow1" itp:label="Condition to B" itp:elementType="sequenceFlow">
+ <di:waypoint x="206.929133858268" y="158.385826771654" />
+ <di:waypoint x="206.929133858268" y="90.7086614173229" />
+ <di:waypoint x="274.96062992126" y="90.7086614173229" />
+ <di:waypoint x="274.96062992126" y="90.7086614173228" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="181.44" y="83.3555905511811" width="60.48" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_6BFC849C-5A53-47FD-BDB9-E45120C1C03C" bpmnElement="_b6a578ba-d556-4867-ab1d-31d05a33a35e" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="228.188976377953" y="174.330708661417" />
+ <di:waypoint x="274.96062992126" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="248.76" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_C7F6000C-EED2-4098-9ABB-05B10A064B90" bpmnElement="TestModelDefaultSequenceFlow" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="206.929133858268" y="190.275590551181" />
+ <di:waypoint x="206.929133858268" y="257.952755905512" />
+ <di:waypoint x="274.96062992126" y="257.952755905512" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="207.72" y="248.235590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_59E68D69-5965-4B22-888E-509458461F50" bpmnElement="_fb92c3da-c942-4350-bc9f-1b87e5f70023" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="90.7086614173228" />
+ <di:waypoint x="409.606299212598" y="90.7086614173228" />
+ <di:waypoint x="409.606299212598" y="158.385826771654" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="405.72" y="94.8755905511812" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_66573C18-B7AF-4670-BC45-EC7A18ADA015" bpmnElement="_64cf5e6a-18c6-4689-ba93-2865f67c16d6" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="174.330708661417" />
+ <di:waypoint x="388.346456692913" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="370.44" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_1A524BEE-F7CC-4149-8501-B62E4934EE57" bpmnElement="_5af8c969-22a2-485a-8356-8af176a7b3d2" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="360" y="257.952755905512" />
+ <di:waypoint x="409.606299212598" y="257.952755905512" />
+ <di:waypoint x="409.606299212598" y="190.275590551181" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="405.72" y="236.715590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_B8EDA2CE-4127-4AA4-B9B9-1BE490CE7742" bpmnElement="_53472ed0-6bda-4cc3-8119-feb7e93b0ddb" itp:label="(unbenannt)" itp:elementType="sequenceFlow">
+ <di:waypoint x="430.866141732284" y="174.330708661417" />
+ <di:waypoint x="470.551181102362" y="174.330708661417" />
+ <bpmndi:BPMNLabel labelStyle="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Bounds x="447.48" y="158.955590551181" width="7.92" height="17.28" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_09177A98-B288-465F-86DA-4C6A685A8BAB" bpmnElement="TestModelTaskA" itp:label="a" itp:elementType="userTask">
+ <dc:Bounds x="79.3700787401575" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="115.56" y="167.235590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_DFF46673-9E63-4877-A0B7-BAAB9C42DA76" bpmnElement="TestModelTaskB" itp:label="b" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="69.4488188976378" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.4" y="83.7155905511812" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_8969DD4B-F91B-4255-916D-0F4695BCF01D" bpmnElement="TestModelTaskC" itp:label="c" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.76" y="167.235590551181" width="11.52" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_24FA24B4-DBB0-4843-8523-A85FBE9289FB" bpmnElement="TestModelTaskD" itp:label="d" itp:elementType="userTask">
+ <dc:Bounds x="274.96062992126" y="236.692913385827" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="311.4" y="250.755590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_51146E01-297E-46A4-9A99-A9DF4CEF4CC8" bpmnElement="TestModelTaskE" itp:label="e" itp:elementType="userTask">
+ <dc:Bounds x="470.551181102362" y="153.070866141732" width="85.0393700787402" height="42.5196850393701" />
+ <bpmndi:BPMNLabel labelStyle="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Bounds x="507.24" y="167.235590551181" width="12.24" height="13.68" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ <bpmndi:BPMNLabelStyle id="_9146bd08-9804-4764-8e0c-0030121edd04">
+ <dc:Font name="Arial" size="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ <bpmndi:BPMNLabelStyle id="_7a6f535f-42c0-426c-bd17-d17c7b451154">
+ <dc:Font name="Arial" size="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" />
+ </bpmndi:BPMNLabelStyle>
+ </bpmndi:BPMNDiagram>
+</definitions> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2/.classpath b/model/org.eclipse.stardust.model.bpmn2/.classpath
new file mode 100644
index 0000000..bb6db0a
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/model/org.eclipse.stardust.model.bpmn2/.project b/model/org.eclipse.stardust.model.bpmn2/.project
new file mode 100644
index 0000000..44ad5fe
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.stardust.model.bpmn2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/model/org.eclipse.stardust.model.bpmn2/pom.xml b/model/org.eclipse.stardust.model.bpmn2/pom.xml
new file mode 100644
index 0000000..50c6f21
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/pom.xml
@@ -0,0 +1,71 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>org.eclipse.stardust.model.bpmn2</artifactId>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <artifactId>org.eclipse.bpmn2</artifactId>
+ <groupId>org.eclipse.bpmn2</groupId>
+ <version>0.7.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.stardust.modeling.model</groupId>
+ <artifactId>org.eclipse.stardust.model.xpdl</artifactId>
+ <version>9.9.9-SNAPSHOT</version>
+ </dependency>
+ <!--
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
+ <version>2.5.0.v20100521-1846</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>org.eclipse.emf.common</artifactId>
+ <version>2.6.0.v20100614-1136</version>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>emf-ecore</artifactId>
+ <version>2.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>emf-ecore-xmi</artifactId>
+ <version>2.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.osgi</groupId>
+ <artifactId>org.eclipse.osgi</artifactId>
+ <version>3.6.0.v20100517</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.xsd</groupId>
+ <artifactId>xsd</artifactId>
+ <version>2.4.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.17</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.10</version>
+ </dependency>
+ </dependencies>
+
+</project> \ No newline at end of file
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/extension/ExtensionHelper.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/extension/ExtensionHelper.java
new file mode 100644
index 0000000..2e6c507
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/extension/ExtensionHelper.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.extension;
+
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.List;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.bpmn2.BaseElement;
+import org.eclipse.bpmn2.Bpmn2Factory;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.ExtensionAttributeValue;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.ServiceTask;
+import org.eclipse.bpmn2.StartEvent;
+import org.eclipse.bpmn2.SubProcess;
+import org.eclipse.bpmn2.UserTask;
+import org.eclipse.emf.ecore.EStructuralFeature.Internal;
+import org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.SimpleFeatureMapEntry;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.xml.type.internal.XMLCalendar;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnFactory;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class ExtensionHelper {
+
+ private static final Internal USER_TASK_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_USER_TASK;
+ private static final Internal SERVICE_TASK_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SERVICE_TASK;
+ private static final Internal SUBPROCESS_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SUBPROCESS;
+ private static final Internal SEQUENCE_FLOW_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW;
+ private static final Internal START_EVENT_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_START_EVENT;
+ private static final Internal TIMER_START_EVENT_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT;
+ private static final Internal MESSAGE_START_EVENT_EXT = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT;
+
+ private static final Internal MODEL_ATT_OID = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__OID;
+ private static final Internal MODEL_ATT_MODEL_OID = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__MODEL_OID;
+ private static final Internal MODEL_ATT_VERSION = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__CARNOT_VERSION;
+ private static final Internal MODEL_ATT_CREATED = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__CREATED;
+ private static final Internal MODEL_ATT_VENDOR = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__VENDOR;
+ private static final Internal MODEL_ATT_AUTHOR = (Internal)SdbpmnPackage.Literals.DOCUMENT_ROOT__AUTHOR;
+
+
+
+ private static ExtensionHelper instance = null;
+
+ private ExtensionHelper() {}
+ public static ExtensionHelper getInstance() {
+ if (instance == null) {
+ instance = new ExtensionHelper();
+ }
+ return instance;
+ }
+
+ public void setStartEventExtension(StartEvent element, StardustStartEventType extensionValue) {
+ setExtension(element, extensionValue, START_EVENT_EXT);
+ }
+
+ public StardustStartEventType getStartEventExtension(StartEvent element) {
+ return getFirstExtension(StardustStartEventType.class, element, START_EVENT_EXT);
+ }
+
+ public void setMessageStartEventExtension(StartEvent element, StardustMessageStartEventType extensionValue) {
+ setExtension(element, extensionValue, MESSAGE_START_EVENT_EXT);
+ }
+
+ public StardustMessageStartEventType getMessageStartEventExtension(StartEvent element) {
+ return getFirstExtension(StardustMessageStartEventType.class, element, MESSAGE_START_EVENT_EXT);
+ }
+
+ public void setTimerStartEventExtension(StartEvent element, StardustTimerStartEventType extensionValue) {
+ setExtension(element, extensionValue, TIMER_START_EVENT_EXT);
+ }
+
+ public StardustTimerStartEventType getTimerStartEventExtension(StartEvent element) {
+ return getFirstExtension(StardustTimerStartEventType.class, element, TIMER_START_EVENT_EXT);
+ }
+
+ public void setUserTaskExtension(UserTask element, StardustUserTaskType extensionValue) {
+ setExtension(element, extensionValue, USER_TASK_EXT);
+ }
+
+ public StardustUserTaskType getUserTaskExtension(UserTask element) {
+ return getFirstExtension(StardustUserTaskType.class, element, USER_TASK_EXT);
+ }
+
+ public void setServiceTaskExtension(ServiceTask serviceTask, StardustServiceTaskType serviceTaskExtension) {
+ setExtension(serviceTask, serviceTaskExtension, SERVICE_TASK_EXT);
+ }
+
+ public StardustServiceTaskType getServiceTaskExtension(ServiceTask serviceTask) {
+ return getFirstExtension(StardustServiceTaskType.class, serviceTask, SERVICE_TASK_EXT);
+ }
+
+ public void setSubprocessExtension(SubProcess element, StardustSubprocessType extensionValue) {
+ setExtension(element, extensionValue, SUBPROCESS_EXT);
+ }
+
+ public StardustSubprocessType getSubprocessExtension(SubProcess element) {
+ return getFirstExtension(StardustSubprocessType.class, element, SUBPROCESS_EXT);
+ }
+
+ public void setSequenceFlowExtension(SequenceFlow element, StardustSeqenceFlowType extensionValue) {
+ setExtension(element, extensionValue, SEQUENCE_FLOW_EXT);
+ }
+
+ public StardustSeqenceFlowType getSequenceFlowExtension(SequenceFlow element) {
+ return getFirstExtension(StardustSeqenceFlowType.class, element, SEQUENCE_FLOW_EXT);
+ }
+
+ public void setModelAttributes(Definitions element, StardustModelType values) {
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_AUTHOR, values.getAuthor()));
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_VERSION, values.getCarnotVersion()));
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_CREATED, values.getCreated()));
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_MODEL_OID, values.getModelOID()));
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_OID, values.getOid()));
+ element.getAnyAttribute().add(createFeatureEntry(MODEL_ATT_VENDOR, values.getVendor()));
+ }
+
+ public StardustModelType getModelAttributes(Definitions element) {
+ FeatureMap attributes = element.getAnyAttribute();
+ StardustModelType modelvalues = SdbpmnFactory.eINSTANCE.createStardustModelType();
+ modelvalues.setAuthor(getString(attributes, MODEL_ATT_AUTHOR));
+ modelvalues.setCarnotVersion(getString(attributes, MODEL_ATT_VERSION));
+ modelvalues.setCreated(getDate(attributes, MODEL_ATT_CREATED));
+ modelvalues.setModelOID(getInt(attributes, MODEL_ATT_MODEL_OID));
+ modelvalues.setOid(getLong(attributes, MODEL_ATT_OID));
+ modelvalues.setVendor(getString(attributes, MODEL_ATT_VENDOR));
+ return modelvalues;
+ }
+
+ private <T> T getFirstExtension(Class<T> type, BaseElement element, Internal feature) {
+ @SuppressWarnings("unchecked")
+ List<T> extensionList = (List<T>)getExtension(element, feature);
+ T taskExtension = extensionList.size() > 0 ? extensionList.get(0) : null;
+ return taskExtension;
+ }
+
+ private Object getExtension(BaseElement element, Internal feature) {
+ for (ExtensionAttributeValue extensionAttributeValue : element.getExtensionValues()) {
+ FeatureMap extensionElements = extensionAttributeValue.getValue();
+ Object extensionElement = extensionElements.get(feature, true);
+ if (extensionElement != null) return extensionElement;
+ }
+ return null;
+ }
+
+ private void setExtension(BaseElement element, Object extensionValue, Internal feature) {
+ ExtensionAttributeValue extensionElement;
+ if (element.getExtensionValues() != null && element.getExtensionValues().size() > 0) {
+ extensionElement = element.getExtensionValues().get(0);
+ } else {
+ extensionElement = Bpmn2Factory.eINSTANCE.createExtensionAttributeValue();
+ }
+ FeatureMap.Entry extensionElementEntry = createFeatureEntry(feature, extensionValue);
+ element.getExtensionValues().add(extensionElement);
+ extensionElement.getValue().add(extensionElementEntry);
+ }
+
+ private FeatureMap.Entry createFeatureEntry(Internal feature, Object value) {
+ return new SimpleFeatureMapEntry(feature, value);
+ }
+
+ private long getLong(FeatureMap attributes, Internal attribute) {
+ try {
+ long val = Long.parseLong(attributes.get(attribute, true).toString());
+ return val;
+ } catch (NumberFormatException e) {}
+ catch (NullPointerException e) {}
+ return 0;
+ }
+
+ private BigInteger getInt(FeatureMap attributes, Internal attribute) {
+ BigInteger empty = BigInteger.ZERO;
+ try {
+ BigInteger val = (BigInteger)(attributes.get(attribute, true));
+ if (val==null) return empty;
+ return val;
+ } catch (Exception e) {}
+ return empty;
+ }
+
+ private XMLGregorianCalendar getDate(FeatureMap attributes, Internal attribute) {
+ XMLGregorianCalendar empty = new XMLCalendar(new Date(), XMLCalendar.DATETIME);
+ try {
+ XMLGregorianCalendar val = (XMLGregorianCalendar)(attributes.get(attribute, true));
+ if (val==null) return empty;
+ return val;
+ } catch (Exception e) {}
+ return empty;
+ }
+
+ private String getString(FeatureMap attributes, Internal attribute) {
+ String empty = "";
+ try {
+ String val = (String)(attributes.get(attribute, true));
+ if (val==null) return empty;
+ return val;
+ } catch (Exception e) {}
+ return empty;
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/input/BPMNModelImporter.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/input/BPMNModelImporter.java
new file mode 100644
index 0000000..987df53
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/input/BPMNModelImporter.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2012 ITpearls AG 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:
+ * ITpearls - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+package org.eclipse.stardust.model.bpmn2.input;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.DocumentRoot;
+import org.eclipse.bpmn2.SequenceFlow;
+import org.eclipse.bpmn2.util.Bpmn2Resource;
+import org.eclipse.bpmn2.util.Bpmn2ResourceFactoryImpl;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xml.type.AnyType;
+
+/**
+ * @author Simon Nikles
+ */
+public class BPMNModelImporter {
+
+ private static Logger log = Logger.getLogger(BPMNModelImporter.class);
+
+ public BPMNModelImporter() {
+
+ }
+
+ public static Bpmn2Resource importModel(String filePath) throws FileNotFoundException, IOException {
+ log.info("importModel " + filePath);
+ Bpmn2ResourceFactoryImpl factory = new Bpmn2ResourceFactoryImpl();
+
+ Bpmn2Resource loadedResource = (Bpmn2Resource) factory.createResource(URI.createFileURI(filePath));
+
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_RECORD_ANY_TYPE_NAMESPACE_DECLARATIONS, Boolean.TRUE);
+ options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
+ options.put(XMLResource.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE);
+ loadedResource.load(options);
+
+ //debugPrint(loadedResource);
+
+ return loadedResource;
+ }
+
+
+ public static Definitions getDefinitions(Bpmn2Resource loadedResource) {
+
+ EList<EObject> list = loadedResource.getContents();
+ for (EObject l : list) {
+ if (l instanceof DocumentRoot) {
+ return ((DocumentRoot) l).getDefinitions();
+ }
+ }
+ return null;
+ }
+
+ @SuppressWarnings("unused")
+ private static void debugPrint(Bpmn2Resource r) {
+
+ log.debug("BPMNModelGenerator.debugPrint()");
+
+ EList<EObject> list = r.getContents();
+ log.debug("Elist contents: ");
+ for (EObject l : list) {
+ debugPrintChildren(l, 1);
+ }
+ }
+
+ private static void debugPrintChildren(EObject parent, int level) {
+ TreeIterator<EObject> it = parent.eAllContents();
+ while(it.hasNext()) {
+ EObject obj = it.next();
+ String lvl = String.format("%"+level+"s", "").replace(' ', '-');
+
+ if (!(obj instanceof AnyType)) {
+ log.debug(lvl + obj.eClass().getName() + " (" + obj.toString() + ")");
+
+ if ("SequenceFlow".equals(obj.eClass().getName())) {
+ log.debug("SourceRef: " + ((SequenceFlow)obj).getSourceRef());
+ log.debug("TargetRef: " + ((SequenceFlow)obj).getTargetRef());
+ }
+ } else {
+ for ( Object attr : ((AnyType) obj).getAnyAttribute()) {
+ log.debug(" any attr " + attr.toString());
+ }
+ }
+ debugPrintChildren(obj, level+1);
+ }
+
+ }
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/output/BPMNModelExporter.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/output/BPMNModelExporter.java
new file mode 100644
index 0000000..1aa1988
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/output/BPMNModelExporter.java
@@ -0,0 +1,37 @@
+package org.eclipse.stardust.model.bpmn2.output;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.bpmn2.util.Bpmn2Resource;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class BPMNModelExporter {
+
+ public BPMNModelExporter() {
+
+ }
+
+ public static void exportModel(Bpmn2Resource resource, String targetFilePath) throws FileNotFoundException, IOException {
+ Logger.getLogger(BPMNModelExporter.class).debug("BPMNModelExporter.exportModel() " + targetFilePath);
+
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_RECORD_ANY_TYPE_NAMESPACE_DECLARATIONS, Boolean.TRUE);
+ options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
+ options.put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.FALSE);
+ options.put(XMLResource.OPTION_KEEP_DEFAULT_CONTENT, Boolean.TRUE);
+ FileOutputStream fos = new FileOutputStream(targetFilePath);
+
+ resource.save(fos, options);
+ fos.close();
+ }
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/reader/ModelInfo.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/reader/ModelInfo.java
new file mode 100644
index 0000000..6fa7e6c
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/reader/ModelInfo.java
@@ -0,0 +1,43 @@
+package org.eclipse.stardust.model.bpmn2.reader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.Participant;
+import org.eclipse.bpmn2.PartnerEntity;
+import org.eclipse.bpmn2.PartnerRole;
+import org.eclipse.bpmn2.RootElement;
+
+/**
+ * @author Simon Nikles
+ *
+ */
+public class ModelInfo {
+
+ public ModelInfo() {
+ }
+
+ public static List<PartnerRole> getParnterRolesOfParticipant(Definitions definitions, Participant participant) {
+ List<PartnerRole> roles = new ArrayList<PartnerRole>();
+ for (RootElement root : definitions.getRootElements()) {
+ if (root instanceof PartnerRole && ((PartnerRole)root).getParticipantRef().contains(participant)) {
+ roles.add((PartnerRole)root);
+ }
+ }
+ return roles;
+ }
+
+ public static List<PartnerEntity> getParnterEntitiesOfParticipant(Definitions definitions, Participant participant) {
+ List<PartnerEntity> entities = new ArrayList<PartnerEntity>();
+ for (RootElement root : definitions.getRootElements()) {
+ if (root instanceof PartnerEntity && ((PartnerEntity)root).getParticipantRef().contains(participant)) {
+ entities.add((PartnerEntity)root);
+ }
+ }
+ return entities;
+ }
+
+
+
+}
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/DocumentRoot.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/DocumentRoot.java
new file mode 100644
index 0000000..cd8daf8
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/DocumentRoot.java
@@ -0,0 +1,603 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import java.math.BigInteger;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getMixed <em>Mixed</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustActivity <em>Stardust Activity</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustCommon <em>Stardust Common</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustMessageStartEvent <em>Stardust Message Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustModel <em>Stardust Model</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSeqenceFlow <em>Stardust Seqence Flow</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustServiceTask <em>Stardust Service Task</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustStartEvent <em>Stardust Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSubprocess <em>Stardust Subprocess</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustTimerStartEvent <em>Stardust Timer Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustUserTask <em>Stardust User Task</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCarnotVersion <em>Carnot Version</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCreated <em>Created</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getModelOID <em>Model OID</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid <em>Oid</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getVendor <em>Vendor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot()
+ * @model extendedMetaData="name='' kind='mixed'"
+ * @generated
+ */
+public interface DocumentRoot extends EObject {
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mixed</em>' attribute list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_Mixed()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='elementWildcard' name=':mixed'"
+ * @generated
+ */
+ FeatureMap getMixed();
+
+ /**
+ * Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XMLNS Prefix Map</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XMLNS Prefix Map</em>' map.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_XMLNSPrefixMap()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xmlns:prefix'"
+ * @generated
+ */
+ EMap<String, String> getXMLNSPrefixMap();
+
+ /**
+ * Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>XSI Schema Location</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>XSI Schema Location</em>' map.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_XSISchemaLocation()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+ * extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
+ * @generated
+ */
+ EMap<String, String> getXSISchemaLocation();
+
+ /**
+ * Returns the value of the '<em><b>Stardust Activity</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Activity</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Activity</em>' containment reference.
+ * @see #setStardustActivity(TStardustActivity)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustActivity()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustActivity' namespace='##targetNamespace'"
+ * @generated
+ */
+ TStardustActivity getStardustActivity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustActivity <em>Stardust Activity</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Activity</em>' containment reference.
+ * @see #getStardustActivity()
+ * @generated
+ */
+ void setStardustActivity(TStardustActivity value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #setStardustAttributes(StardustAttributesType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustAttributes()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustAttributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustAttributesType getStardustAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustAttributes <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #getStardustAttributes()
+ * @generated
+ */
+ void setStardustAttributes(StardustAttributesType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Common</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Common</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Common</em>' containment reference.
+ * @see #setStardustCommon(TStardustCommon)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustCommon()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustCommon' namespace='##targetNamespace'"
+ * @generated
+ */
+ TStardustCommon getStardustCommon();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustCommon <em>Stardust Common</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Common</em>' containment reference.
+ * @see #getStardustCommon()
+ * @generated
+ */
+ void setStardustCommon(TStardustCommon value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Message Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Message Start Event</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Message Start Event</em>' containment reference.
+ * @see #setStardustMessageStartEvent(StardustMessageStartEventType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustMessageStartEvent()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustMessageStartEvent' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustMessageStartEventType getStardustMessageStartEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustMessageStartEvent <em>Stardust Message Start Event</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Message Start Event</em>' containment reference.
+ * @see #getStardustMessageStartEvent()
+ * @generated
+ */
+ void setStardustMessageStartEvent(StardustMessageStartEventType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Model</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Model</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Model</em>' containment reference.
+ * @see #setStardustModel(StardustModelType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustModel()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustModel' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustModelType getStardustModel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustModel <em>Stardust Model</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Model</em>' containment reference.
+ * @see #getStardustModel()
+ * @generated
+ */
+ void setStardustModel(StardustModelType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Seqence Flow</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Seqence Flow</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Seqence Flow</em>' containment reference.
+ * @see #setStardustSeqenceFlow(StardustSeqenceFlowType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustSeqenceFlow()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustSeqenceFlow' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustSeqenceFlowType getStardustSeqenceFlow();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSeqenceFlow <em>Stardust Seqence Flow</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Seqence Flow</em>' containment reference.
+ * @see #getStardustSeqenceFlow()
+ * @generated
+ */
+ void setStardustSeqenceFlow(StardustSeqenceFlowType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Service Task</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Service Task</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Service Task</em>' containment reference.
+ * @see #setStardustServiceTask(StardustServiceTaskType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustServiceTask()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustServiceTask' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustServiceTaskType getStardustServiceTask();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustServiceTask <em>Stardust Service Task</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Service Task</em>' containment reference.
+ * @see #getStardustServiceTask()
+ * @generated
+ */
+ void setStardustServiceTask(StardustServiceTaskType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Start Event</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Start Event</em>' containment reference.
+ * @see #setStardustStartEvent(StardustStartEventType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustStartEvent()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustStartEvent' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustStartEventType getStardustStartEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustStartEvent <em>Stardust Start Event</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Start Event</em>' containment reference.
+ * @see #getStardustStartEvent()
+ * @generated
+ */
+ void setStardustStartEvent(StardustStartEventType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Subprocess</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Subprocess</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Subprocess</em>' containment reference.
+ * @see #setStardustSubprocess(StardustSubprocessType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustSubprocess()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustSubprocess' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustSubprocessType getStardustSubprocess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSubprocess <em>Stardust Subprocess</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Subprocess</em>' containment reference.
+ * @see #getStardustSubprocess()
+ * @generated
+ */
+ void setStardustSubprocess(StardustSubprocessType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust Timer Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Timer Start Event</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Timer Start Event</em>' containment reference.
+ * @see #setStardustTimerStartEvent(StardustTimerStartEventType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustTimerStartEvent()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustTimerStartEvent' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustTimerStartEventType getStardustTimerStartEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustTimerStartEvent <em>Stardust Timer Start Event</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Timer Start Event</em>' containment reference.
+ * @see #getStardustTimerStartEvent()
+ * @generated
+ */
+ void setStardustTimerStartEvent(StardustTimerStartEventType value);
+
+ /**
+ * Returns the value of the '<em><b>Stardust User Task</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust User Task</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust User Task</em>' containment reference.
+ * @see #setStardustUserTask(StardustUserTaskType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_StardustUserTask()
+ * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
+ * extendedMetaData="kind='element' name='StardustUserTask' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustUserTaskType getStardustUserTask();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustUserTask <em>Stardust User Task</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust User Task</em>' containment reference.
+ * @see #getStardustUserTask()
+ * @generated
+ */
+ void setStardustUserTask(StardustUserTaskType value);
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The name of the user editing this model last.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Author</em>' attribute.
+ * @see #setAuthor(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_Author()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='author' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getAuthor <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' attribute.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(String value);
+
+ /**
+ * Returns the value of the '<em><b>Carnot Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The software version used to create and edit this model. Opening this
+ * model in another version of the software may require an explicit
+ * conversion.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Carnot Version</em>' attribute.
+ * @see #setCarnotVersion(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_CarnotVersion()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='carnotVersion' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getCarnotVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCarnotVersion <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Carnot Version</em>' attribute.
+ * @see #getCarnotVersion()
+ * @generated
+ */
+ void setCarnotVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Created</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The date this model was created.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Created</em>' attribute.
+ * @see #setCreated(XMLGregorianCalendar)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_Created()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.DateTime"
+ * extendedMetaData="kind='attribute' name='created' namespace='##targetNamespace'"
+ * @generated
+ */
+ XMLGregorianCalendar getCreated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCreated <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Created</em>' attribute.
+ * @see #getCreated()
+ * @generated
+ */
+ void setCreated(XMLGregorianCalendar value);
+
+ /**
+ * Returns the value of the '<em><b>Model OID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * A 32-bit number assigned to the model during deployment to an audit
+ * trail. This number may be changed if the model is deployed to different
+ * audit trails or even to the same audit trail multiple times.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Model OID</em>' attribute.
+ * @see #setModelOID(BigInteger)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_ModelOID()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.Integer"
+ * extendedMetaData="kind='attribute' name='modelOID' namespace='##targetNamespace'"
+ * @generated
+ */
+ BigInteger getModelOID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getModelOID <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model OID</em>' attribute.
+ * @see #getModelOID()
+ * @generated
+ */
+ void setModelOID(BigInteger value);
+
+ /**
+ * Returns the value of the '<em><b>Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * A 64-bit number uniquely identifying the model in the model repository.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Oid</em>' attribute.
+ * @see #isSetOid()
+ * @see #unsetOid()
+ * @see #setOid(long)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_Oid()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Long"
+ * extendedMetaData="kind='attribute' name='oid' namespace='##targetNamespace'"
+ * @generated
+ */
+ long getOid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Oid</em>' attribute.
+ * @see #isSetOid()
+ * @see #unsetOid()
+ * @see #getOid()
+ * @generated
+ */
+ void setOid(long value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOid()
+ * @see #getOid()
+ * @see #setOid(long)
+ * @generated
+ */
+ void unsetOid();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid <em>Oid</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Oid</em>' attribute is set.
+ * @see #unsetOid()
+ * @see #getOid()
+ * @see #setOid(long)
+ * @generated
+ */
+ boolean isSetOid();
+
+ /**
+ * Returns the value of the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The vendor of the software used to create and edit this model. Usually
+ * this will be "carnot".
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Vendor</em>' attribute.
+ * @see #setVendor(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getDocumentRoot_Vendor()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='vendor' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getVendor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getVendor <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vendor</em>' attribute.
+ * @see #getVendor()
+ * @generated
+ */
+ void setVendor(String value);
+
+} // DocumentRoot
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnFactory.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnFactory.java
new file mode 100644
index 0000000..3c1329d
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnFactory.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage
+ * @generated
+ */
+public interface SdbpmnFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SdbpmnFactory eINSTANCE = org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Document Root</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Document Root</em>'.
+ * @generated
+ */
+ DocumentRoot createDocumentRoot();
+
+ /**
+ * Returns a new object of class '<em>Stardust Attributes Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Attributes Type</em>'.
+ * @generated
+ */
+ StardustAttributesType createStardustAttributesType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Message Start Event Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Message Start Event Type</em>'.
+ * @generated
+ */
+ StardustMessageStartEventType createStardustMessageStartEventType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Model Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Model Type</em>'.
+ * @generated
+ */
+ StardustModelType createStardustModelType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Seqence Flow Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Seqence Flow Type</em>'.
+ * @generated
+ */
+ StardustSeqenceFlowType createStardustSeqenceFlowType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Service Task Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Service Task Type</em>'.
+ * @generated
+ */
+ StardustServiceTaskType createStardustServiceTaskType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Start Event Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Start Event Type</em>'.
+ * @generated
+ */
+ StardustStartEventType createStardustStartEventType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Subprocess Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Subprocess Type</em>'.
+ * @generated
+ */
+ StardustSubprocessType createStardustSubprocessType();
+
+ /**
+ * Returns a new object of class '<em>Stardust Timer Start Event Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust Timer Start Event Type</em>'.
+ * @generated
+ */
+ StardustTimerStartEventType createStardustTimerStartEventType();
+
+ /**
+ * Returns a new object of class '<em>Stardust User Task Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stardust User Task Type</em>'.
+ * @generated
+ */
+ StardustUserTaskType createStardustUserTaskType();
+
+ /**
+ * Returns a new object of class '<em>TStardust Activity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TStardust Activity</em>'.
+ * @generated
+ */
+ TStardustActivity createTStardustActivity();
+
+ /**
+ * Returns a new object of class '<em>TStardust Common</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>TStardust Common</em>'.
+ * @generated
+ */
+ TStardustCommon createTStardustCommon();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ SdbpmnPackage getSdbpmnPackage();
+
+} //SdbpmnFactory
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnPackage.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnPackage.java
new file mode 100644
index 0000000..8500ea5
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/SdbpmnPackage.java
@@ -0,0 +1,1820 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SdbpmnPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "sdbpmn";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/stardust/bpmn20/sdbpmn";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "sdbpmn";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SdbpmnPackage eINSTANCE = org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ int DOCUMENT_ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Stardust Activity</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_ACTIVITY = 3;
+
+ /**
+ * The feature id for the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_ATTRIBUTES = 4;
+
+ /**
+ * The feature id for the '<em><b>Stardust Common</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_COMMON = 5;
+
+ /**
+ * The feature id for the '<em><b>Stardust Message Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT = 6;
+
+ /**
+ * The feature id for the '<em><b>Stardust Model</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_MODEL = 7;
+
+ /**
+ * The feature id for the '<em><b>Stardust Seqence Flow</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW = 8;
+
+ /**
+ * The feature id for the '<em><b>Stardust Service Task</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_SERVICE_TASK = 9;
+
+ /**
+ * The feature id for the '<em><b>Stardust Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_START_EVENT = 10;
+
+ /**
+ * The feature id for the '<em><b>Stardust Subprocess</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_SUBPROCESS = 11;
+
+ /**
+ * The feature id for the '<em><b>Stardust Timer Start Event</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT = 12;
+
+ /**
+ * The feature id for the '<em><b>Stardust User Task</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__STARDUST_USER_TASK = 13;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__AUTHOR = 14;
+
+ /**
+ * The feature id for the '<em><b>Carnot Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__CARNOT_VERSION = 15;
+
+ /**
+ * The feature id for the '<em><b>Created</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__CREATED = 16;
+
+ /**
+ * The feature id for the '<em><b>Model OID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__MODEL_OID = 17;
+
+ /**
+ * The feature id for the '<em><b>Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__OID = 18;
+
+ /**
+ * The feature id for the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT__VENDOR = 19;
+
+ /**
+ * The number of structural features of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOCUMENT_ROOT_FEATURE_COUNT = 20;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustAttributesTypeImpl <em>Stardust Attributes Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustAttributesTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustAttributesType()
+ * @generated
+ */
+ int STARDUST_ATTRIBUTES_TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Attribute Type</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Attributes Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_ATTRIBUTES_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl <em>Stardust Message Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustMessageStartEventType()
+ * @generated
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES = 0;
+
+ /**
+ * The feature id for the '<em><b>Access Point</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT = 1;
+
+ /**
+ * The feature id for the '<em><b>Parameter Mapping</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING = 2;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE__TYPE = 3;
+
+ /**
+ * The number of structural features of the '<em>Stardust Message Start Event Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MESSAGE_START_EVENT_TYPE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl <em>Stardust Model Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustModelType()
+ * @generated
+ */
+ int STARDUST_MODEL_TYPE = 3;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__AUTHOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Carnot Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__CARNOT_VERSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Created</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__CREATED = 2;
+
+ /**
+ * The feature id for the '<em><b>Model OID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__MODEL_OID = 3;
+
+ /**
+ * The feature id for the '<em><b>Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__OID = 4;
+
+ /**
+ * The feature id for the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE__VENDOR = 5;
+
+ /**
+ * The number of structural features of the '<em>Stardust Model Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_MODEL_TYPE_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSeqenceFlowTypeImpl <em>Stardust Seqence Flow Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSeqenceFlowTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustSeqenceFlowType()
+ * @generated
+ */
+ int STARDUST_SEQENCE_FLOW_TYPE = 4;
+
+ /**
+ * The feature id for the '<em><b>Fork On Traversal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL = 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Seqence Flow Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SEQENCE_FLOW_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustCommonImpl <em>TStardust Common</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustCommonImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getTStardustCommon()
+ * @generated
+ */
+ int TSTARDUST_COMMON = 11;
+
+ /**
+ * The feature id for the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_COMMON__ELEMENT_OID = 0;
+
+ /**
+ * The number of structural features of the '<em>TStardust Common</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_COMMON_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustActivityImpl <em>TStardust Activity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustActivityImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getTStardustActivity()
+ * @generated
+ */
+ int TSTARDUST_ACTIVITY = 10;
+
+ /**
+ * The feature id for the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_ACTIVITY__ELEMENT_OID = TSTARDUST_COMMON__ELEMENT_OID;
+
+ /**
+ * The feature id for the '<em><b>Event Handler</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_ACTIVITY__EVENT_HANDLER = TSTARDUST_COMMON_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Data Mapping</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_ACTIVITY__DATA_MAPPING = TSTARDUST_COMMON_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Hibernate On Creation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION = TSTARDUST_COMMON_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>TStardust Activity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TSTARDUST_ACTIVITY_FEATURE_COUNT = TSTARDUST_COMMON_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustServiceTaskTypeImpl <em>Stardust Service Task Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustServiceTaskTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustServiceTaskType()
+ * @generated
+ */
+ int STARDUST_SERVICE_TASK_TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE__ELEMENT_OID = TSTARDUST_ACTIVITY__ELEMENT_OID;
+
+ /**
+ * The feature id for the '<em><b>Event Handler</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE__EVENT_HANDLER = TSTARDUST_ACTIVITY__EVENT_HANDLER;
+
+ /**
+ * The feature id for the '<em><b>Data Mapping</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE__DATA_MAPPING = TSTARDUST_ACTIVITY__DATA_MAPPING;
+
+ /**
+ * The feature id for the '<em><b>Hibernate On Creation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE__HIBERNATE_ON_CREATION = TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION;
+
+ /**
+ * The feature id for the '<em><b>Application</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE__APPLICATION = TSTARDUST_ACTIVITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Service Task Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SERVICE_TASK_TYPE_FEATURE_COUNT = TSTARDUST_ACTIVITY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustStartEventTypeImpl <em>Stardust Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustStartEventType()
+ * @generated
+ */
+ int STARDUST_START_EVENT_TYPE = 6;
+
+ /**
+ * The feature id for the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES = 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Start Event Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_START_EVENT_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSubprocessTypeImpl <em>Stardust Subprocess Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSubprocessTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustSubprocessType()
+ * @generated
+ */
+ int STARDUST_SUBPROCESS_TYPE = 7;
+
+ /**
+ * The feature id for the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE__ELEMENT_OID = TSTARDUST_ACTIVITY__ELEMENT_OID;
+
+ /**
+ * The feature id for the '<em><b>Event Handler</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE__EVENT_HANDLER = TSTARDUST_ACTIVITY__EVENT_HANDLER;
+
+ /**
+ * The feature id for the '<em><b>Data Mapping</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE__DATA_MAPPING = TSTARDUST_ACTIVITY__DATA_MAPPING;
+
+ /**
+ * The feature id for the '<em><b>Hibernate On Creation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE__HIBERNATE_ON_CREATION = TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION;
+
+ /**
+ * The feature id for the '<em><b>Implementation Process</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS = TSTARDUST_ACTIVITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Subprocess Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_SUBPROCESS_TYPE_FEATURE_COUNT = TSTARDUST_ACTIVITY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustTimerStartEventTypeImpl <em>Stardust Timer Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustTimerStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustTimerStartEventType()
+ * @generated
+ */
+ int STARDUST_TIMER_START_EVENT_TYPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_TIMER_START_EVENT_TYPE__STARDUST_ATTRIBUTES = 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust Timer Start Event Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_TIMER_START_EVENT_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustUserTaskTypeImpl <em>Stardust User Task Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustUserTaskTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustUserTaskType()
+ * @generated
+ */
+ int STARDUST_USER_TASK_TYPE = 9;
+
+ /**
+ * The feature id for the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE__ELEMENT_OID = TSTARDUST_ACTIVITY__ELEMENT_OID;
+
+ /**
+ * The feature id for the '<em><b>Event Handler</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE__EVENT_HANDLER = TSTARDUST_ACTIVITY__EVENT_HANDLER;
+
+ /**
+ * The feature id for the '<em><b>Data Mapping</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE__DATA_MAPPING = TSTARDUST_ACTIVITY__DATA_MAPPING;
+
+ /**
+ * The feature id for the '<em><b>Hibernate On Creation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE__HIBERNATE_ON_CREATION = TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION;
+
+ /**
+ * The feature id for the '<em><b>Allows Abort By Performer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE__ALLOWS_ABORT_BY_PERFORMER = TSTARDUST_ACTIVITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Stardust User Task Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STARDUST_USER_TASK_TYPE_FEATURE_COUNT = TSTARDUST_ACTIVITY_FEATURE_COUNT + 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot
+ * @generated
+ */
+ EClass getDocumentRoot();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Mixed();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustActivity <em>Stardust Activity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Activity</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustActivity()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustActivity();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustAttributes <em>Stardust Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Attributes</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustAttributes()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustAttributes();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustCommon <em>Stardust Common</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Common</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustCommon()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustCommon();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustMessageStartEvent <em>Stardust Message Start Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Message Start Event</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustMessageStartEvent()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustMessageStartEvent();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustModel <em>Stardust Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Model</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustModel()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustModel();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSeqenceFlow <em>Stardust Seqence Flow</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Seqence Flow</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSeqenceFlow()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustSeqenceFlow();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustServiceTask <em>Stardust Service Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Service Task</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustServiceTask()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustServiceTask();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustStartEvent <em>Stardust Start Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Start Event</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustStartEvent()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustStartEvent();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSubprocess <em>Stardust Subprocess</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Subprocess</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustSubprocess()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustSubprocess();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustTimerStartEvent <em>Stardust Timer Start Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Timer Start Event</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustTimerStartEvent()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustTimerStartEvent();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustUserTask <em>Stardust User Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust User Task</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getStardustUserTask()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EReference getDocumentRoot_StardustUserTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Author</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getAuthor()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Author();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCarnotVersion <em>Carnot Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Carnot Version</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCarnotVersion()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_CarnotVersion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCreated <em>Created</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Created</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getCreated()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Created();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getModelOID <em>Model OID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Model OID</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getModelOID()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_ModelOID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid <em>Oid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Oid</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getOid()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Oid();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getVendor <em>Vendor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vendor</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot#getVendor()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ EAttribute getDocumentRoot_Vendor();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType <em>Stardust Attributes Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Attributes Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType
+ * @generated
+ */
+ EClass getStardustAttributesType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType#getAttributeType <em>Attribute Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Attribute Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType#getAttributeType()
+ * @see #getStardustAttributesType()
+ * @generated
+ */
+ EReference getStardustAttributesType_AttributeType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType <em>Stardust Message Start Event Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Message Start Event Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType
+ * @generated
+ */
+ EClass getStardustMessageStartEventType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getStardustAttributes <em>Stardust Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Attributes</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getStardustAttributes()
+ * @see #getStardustMessageStartEventType()
+ * @generated
+ */
+ EReference getStardustMessageStartEventType_StardustAttributes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getAccessPoint <em>Access Point</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Access Point</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getAccessPoint()
+ * @see #getStardustMessageStartEventType()
+ * @generated
+ */
+ EReference getStardustMessageStartEventType_AccessPoint();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getParameterMapping <em>Parameter Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Parameter Mapping</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getParameterMapping()
+ * @see #getStardustMessageStartEventType()
+ * @generated
+ */
+ EReference getStardustMessageStartEventType_ParameterMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getType()
+ * @see #getStardustMessageStartEventType()
+ * @generated
+ */
+ EAttribute getStardustMessageStartEventType_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType <em>Stardust Model Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Model Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType
+ * @generated
+ */
+ EClass getStardustModelType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Author</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getAuthor()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_Author();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCarnotVersion <em>Carnot Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Carnot Version</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCarnotVersion()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_CarnotVersion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCreated <em>Created</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Created</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCreated()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_Created();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getModelOID <em>Model OID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Model OID</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getModelOID()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_ModelOID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid <em>Oid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Oid</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_Oid();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getVendor <em>Vendor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vendor</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getVendor()
+ * @see #getStardustModelType()
+ * @generated
+ */
+ EAttribute getStardustModelType_Vendor();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType <em>Stardust Seqence Flow Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Seqence Flow Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType
+ * @generated
+ */
+ EClass getStardustSeqenceFlowType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal <em>Fork On Traversal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fork On Traversal</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal()
+ * @see #getStardustSeqenceFlowType()
+ * @generated
+ */
+ EAttribute getStardustSeqenceFlowType_ForkOnTraversal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType <em>Stardust Service Task Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Service Task Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType
+ * @generated
+ */
+ EClass getStardustServiceTaskType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType#getApplication <em>Application</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Application</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType#getApplication()
+ * @see #getStardustServiceTaskType()
+ * @generated
+ */
+ EAttribute getStardustServiceTaskType_Application();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType <em>Stardust Start Event Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Start Event Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType
+ * @generated
+ */
+ EClass getStardustStartEventType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType#getStardustAttributes <em>Stardust Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Attributes</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType#getStardustAttributes()
+ * @see #getStardustStartEventType()
+ * @generated
+ */
+ EReference getStardustStartEventType_StardustAttributes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType <em>Stardust Subprocess Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Subprocess Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType
+ * @generated
+ */
+ EClass getStardustSubprocessType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType#getImplementationProcess <em>Implementation Process</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implementation Process</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType#getImplementationProcess()
+ * @see #getStardustSubprocessType()
+ * @generated
+ */
+ EAttribute getStardustSubprocessType_ImplementationProcess();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType <em>Stardust Timer Start Event Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust Timer Start Event Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType
+ * @generated
+ */
+ EClass getStardustTimerStartEventType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType#getStardustAttributes <em>Stardust Attributes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stardust Attributes</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType#getStardustAttributes()
+ * @see #getStardustTimerStartEventType()
+ * @generated
+ */
+ EReference getStardustTimerStartEventType_StardustAttributes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType <em>Stardust User Task Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stardust User Task Type</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType
+ * @generated
+ */
+ EClass getStardustUserTaskType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer <em>Allows Abort By Performer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Allows Abort By Performer</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer()
+ * @see #getStardustUserTaskType()
+ * @generated
+ */
+ EAttribute getStardustUserTaskType_AllowsAbortByPerformer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity <em>TStardust Activity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TStardust Activity</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity
+ * @generated
+ */
+ EClass getTStardustActivity();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getEventHandler <em>Event Handler</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Event Handler</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getEventHandler()
+ * @see #getTStardustActivity()
+ * @generated
+ */
+ EReference getTStardustActivity_EventHandler();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getDataMapping <em>Data Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Data Mapping</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getDataMapping()
+ * @see #getTStardustActivity()
+ * @generated
+ */
+ EReference getTStardustActivity_DataMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation <em>Hibernate On Creation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Hibernate On Creation</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation()
+ * @see #getTStardustActivity()
+ * @generated
+ */
+ EAttribute getTStardustActivity_HibernateOnCreation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon <em>TStardust Common</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>TStardust Common</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon
+ * @generated
+ */
+ EClass getTStardustCommon();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon#getElementOid <em>Element Oid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Element Oid</em>'.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon#getElementOid()
+ * @see #getTStardustCommon()
+ * @generated
+ */
+ EAttribute getTStardustCommon_ElementOid();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ SdbpmnFactory getSdbpmnFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Mixed</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the '<em><b>XMLNS Prefix Map</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the '<em><b>XSI Schema Location</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Activity</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_ACTIVITY = eINSTANCE.getDocumentRoot_StardustActivity();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Attributes</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_ATTRIBUTES = eINSTANCE.getDocumentRoot_StardustAttributes();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Common</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_COMMON = eINSTANCE.getDocumentRoot_StardustCommon();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Message Start Event</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT = eINSTANCE.getDocumentRoot_StardustMessageStartEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Model</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_MODEL = eINSTANCE.getDocumentRoot_StardustModel();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Seqence Flow</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW = eINSTANCE.getDocumentRoot_StardustSeqenceFlow();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Service Task</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_SERVICE_TASK = eINSTANCE.getDocumentRoot_StardustServiceTask();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Start Event</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_START_EVENT = eINSTANCE.getDocumentRoot_StardustStartEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Subprocess</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_SUBPROCESS = eINSTANCE.getDocumentRoot_StardustSubprocess();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Timer Start Event</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT = eINSTANCE.getDocumentRoot_StardustTimerStartEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust User Task</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DOCUMENT_ROOT__STARDUST_USER_TASK = eINSTANCE.getDocumentRoot_StardustUserTask();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__AUTHOR = eINSTANCE.getDocumentRoot_Author();
+
+ /**
+ * The meta object literal for the '<em><b>Carnot Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__CARNOT_VERSION = eINSTANCE.getDocumentRoot_CarnotVersion();
+
+ /**
+ * The meta object literal for the '<em><b>Created</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__CREATED = eINSTANCE.getDocumentRoot_Created();
+
+ /**
+ * The meta object literal for the '<em><b>Model OID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__MODEL_OID = eINSTANCE.getDocumentRoot_ModelOID();
+
+ /**
+ * The meta object literal for the '<em><b>Oid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__OID = eINSTANCE.getDocumentRoot_Oid();
+
+ /**
+ * The meta object literal for the '<em><b>Vendor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DOCUMENT_ROOT__VENDOR = eINSTANCE.getDocumentRoot_Vendor();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustAttributesTypeImpl <em>Stardust Attributes Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustAttributesTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustAttributesType()
+ * @generated
+ */
+ EClass STARDUST_ATTRIBUTES_TYPE = eINSTANCE.getStardustAttributesType();
+
+ /**
+ * The meta object literal for the '<em><b>Attribute Type</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE = eINSTANCE.getStardustAttributesType_AttributeType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl <em>Stardust Message Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustMessageStartEventType()
+ * @generated
+ */
+ EClass STARDUST_MESSAGE_START_EVENT_TYPE = eINSTANCE.getStardustMessageStartEventType();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Attributes</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES = eINSTANCE.getStardustMessageStartEventType_StardustAttributes();
+
+ /**
+ * The meta object literal for the '<em><b>Access Point</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT = eINSTANCE.getStardustMessageStartEventType_AccessPoint();
+
+ /**
+ * The meta object literal for the '<em><b>Parameter Mapping</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING = eINSTANCE.getStardustMessageStartEventType_ParameterMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MESSAGE_START_EVENT_TYPE__TYPE = eINSTANCE.getStardustMessageStartEventType_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl <em>Stardust Model Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustModelType()
+ * @generated
+ */
+ EClass STARDUST_MODEL_TYPE = eINSTANCE.getStardustModelType();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__AUTHOR = eINSTANCE.getStardustModelType_Author();
+
+ /**
+ * The meta object literal for the '<em><b>Carnot Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__CARNOT_VERSION = eINSTANCE.getStardustModelType_CarnotVersion();
+
+ /**
+ * The meta object literal for the '<em><b>Created</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__CREATED = eINSTANCE.getStardustModelType_Created();
+
+ /**
+ * The meta object literal for the '<em><b>Model OID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__MODEL_OID = eINSTANCE.getStardustModelType_ModelOID();
+
+ /**
+ * The meta object literal for the '<em><b>Oid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__OID = eINSTANCE.getStardustModelType_Oid();
+
+ /**
+ * The meta object literal for the '<em><b>Vendor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_MODEL_TYPE__VENDOR = eINSTANCE.getStardustModelType_Vendor();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSeqenceFlowTypeImpl <em>Stardust Seqence Flow Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSeqenceFlowTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustSeqenceFlowType()
+ * @generated
+ */
+ EClass STARDUST_SEQENCE_FLOW_TYPE = eINSTANCE.getStardustSeqenceFlowType();
+
+ /**
+ * The meta object literal for the '<em><b>Fork On Traversal</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL = eINSTANCE.getStardustSeqenceFlowType_ForkOnTraversal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustServiceTaskTypeImpl <em>Stardust Service Task Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustServiceTaskTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustServiceTaskType()
+ * @generated
+ */
+ EClass STARDUST_SERVICE_TASK_TYPE = eINSTANCE.getStardustServiceTaskType();
+
+ /**
+ * The meta object literal for the '<em><b>Application</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_SERVICE_TASK_TYPE__APPLICATION = eINSTANCE.getStardustServiceTaskType_Application();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustStartEventTypeImpl <em>Stardust Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustStartEventType()
+ * @generated
+ */
+ EClass STARDUST_START_EVENT_TYPE = eINSTANCE.getStardustStartEventType();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Attributes</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES = eINSTANCE.getStardustStartEventType_StardustAttributes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSubprocessTypeImpl <em>Stardust Subprocess Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSubprocessTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustSubprocessType()
+ * @generated
+ */
+ EClass STARDUST_SUBPROCESS_TYPE = eINSTANCE.getStardustSubprocessType();
+
+ /**
+ * The meta object literal for the '<em><b>Implementation Process</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS = eINSTANCE.getStardustSubprocessType_ImplementationProcess();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustTimerStartEventTypeImpl <em>Stardust Timer Start Event Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustTimerStartEventTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustTimerStartEventType()
+ * @generated
+ */
+ EClass STARDUST_TIMER_START_EVENT_TYPE = eINSTANCE.getStardustTimerStartEventType();
+
+ /**
+ * The meta object literal for the '<em><b>Stardust Attributes</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STARDUST_TIMER_START_EVENT_TYPE__STARDUST_ATTRIBUTES = eINSTANCE.getStardustTimerStartEventType_StardustAttributes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustUserTaskTypeImpl <em>Stardust User Task Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustUserTaskTypeImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getStardustUserTaskType()
+ * @generated
+ */
+ EClass STARDUST_USER_TASK_TYPE = eINSTANCE.getStardustUserTaskType();
+
+ /**
+ * The meta object literal for the '<em><b>Allows Abort By Performer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STARDUST_USER_TASK_TYPE__ALLOWS_ABORT_BY_PERFORMER = eINSTANCE.getStardustUserTaskType_AllowsAbortByPerformer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustActivityImpl <em>TStardust Activity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustActivityImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getTStardustActivity()
+ * @generated
+ */
+ EClass TSTARDUST_ACTIVITY = eINSTANCE.getTStardustActivity();
+
+ /**
+ * The meta object literal for the '<em><b>Event Handler</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TSTARDUST_ACTIVITY__EVENT_HANDLER = eINSTANCE.getTStardustActivity_EventHandler();
+
+ /**
+ * The meta object literal for the '<em><b>Data Mapping</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TSTARDUST_ACTIVITY__DATA_MAPPING = eINSTANCE.getTStardustActivity_DataMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Hibernate On Creation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION = eINSTANCE.getTStardustActivity_HibernateOnCreation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustCommonImpl <em>TStardust Common</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.TStardustCommonImpl
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.impl.SdbpmnPackageImpl#getTStardustCommon()
+ * @generated
+ */
+ EClass TSTARDUST_COMMON = eINSTANCE.getTStardustCommon();
+
+ /**
+ * The meta object literal for the '<em><b>Element Oid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TSTARDUST_COMMON__ELEMENT_OID = eINSTANCE.getTStardustCommon_ElementOid();
+
+ }
+
+} //SdbpmnPackage
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustAttributesType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustAttributesType.java
new file mode 100644
index 0000000..f1db761
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustAttributesType.java
@@ -0,0 +1,49 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.stardust.model.xpdl.carnot.AttributeType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Attributes Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType#getAttributeType <em>Attribute Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustAttributesType()
+ * @model extendedMetaData="name='StardustAttributes_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustAttributesType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Attribute Type</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.stardust.model.xpdl.carnot.AttributeType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Attribute Type</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Attribute Type</em>' containment reference list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustAttributesType_AttributeType()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='AttributeType' namespace='http://www.carnot.ag/workflowmodel/3.1'"
+ * @generated
+ */
+ EList<AttributeType> getAttributeType();
+
+} // StardustAttributesType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustMessageStartEventType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustMessageStartEventType.java
new file mode 100644
index 0000000..ff4bb82
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustMessageStartEventType.java
@@ -0,0 +1,124 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.stardust.model.xpdl.carnot.AccessPointType;
+import org.eclipse.stardust.model.xpdl.carnot.ParameterMappingType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Message Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getAccessPoint <em>Access Point</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getParameterMapping <em>Parameter Mapping</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustMessageStartEventType()
+ * @model extendedMetaData="name='StardustMessageStartEvent_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustMessageStartEventType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #setStardustAttributes(StardustAttributesType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustMessageStartEventType_StardustAttributes()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='StardustAttributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustAttributesType getStardustAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getStardustAttributes <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #getStardustAttributes()
+ * @generated
+ */
+ void setStardustAttributes(StardustAttributesType value);
+
+ /**
+ * Returns the value of the '<em><b>Access Point</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.stardust.model.xpdl.carnot.AccessPointType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The list of access points.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Access Point</em>' containment reference list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustMessageStartEventType_AccessPoint()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='accessPoint' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<AccessPointType> getAccessPoint();
+
+ /**
+ * Returns the value of the '<em><b>Parameter Mapping</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.stardust.model.xpdl.carnot.ParameterMappingType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The list of parameter mappings.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Parameter Mapping</em>' containment reference list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustMessageStartEventType_ParameterMapping()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='parameterMapping' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<ParameterMappingType> getParameterMapping();
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The model id of one of the previously defined triggerType elements.
+ * Actual implementation of a message start event: i.e. jms or e-mail
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustMessageStartEventType_Type()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='type'"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+} // StardustMessageStartEventType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustModelType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustModelType.java
new file mode 100644
index 0000000..97107a3
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustModelType.java
@@ -0,0 +1,235 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import java.math.BigInteger;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Model Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCarnotVersion <em>Carnot Version</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCreated <em>Created</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getModelOID <em>Model OID</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid <em>Oid</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getVendor <em>Vendor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType()
+ * @model extendedMetaData="name='StardustModel_._type' kind='empty'"
+ * @generated
+ */
+public interface StardustModelType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The name of the user editing this model last.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Author</em>' attribute.
+ * @see #setAuthor(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_Author()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='author' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getAuthor <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' attribute.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(String value);
+
+ /**
+ * Returns the value of the '<em><b>Carnot Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The software version used to create and edit this model. Opening this
+ * model in another version of the software may require an explicit
+ * conversion.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Carnot Version</em>' attribute.
+ * @see #setCarnotVersion(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_CarnotVersion()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='carnotVersion' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getCarnotVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCarnotVersion <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Carnot Version</em>' attribute.
+ * @see #getCarnotVersion()
+ * @generated
+ */
+ void setCarnotVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Created</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The date this model was created.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Created</em>' attribute.
+ * @see #setCreated(XMLGregorianCalendar)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_Created()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.DateTime"
+ * extendedMetaData="kind='attribute' name='created' namespace='##targetNamespace'"
+ * @generated
+ */
+ XMLGregorianCalendar getCreated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getCreated <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Created</em>' attribute.
+ * @see #getCreated()
+ * @generated
+ */
+ void setCreated(XMLGregorianCalendar value);
+
+ /**
+ * Returns the value of the '<em><b>Model OID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * A 32-bit number assigned to the model during deployment to an audit
+ * trail. This number may be changed if the model is deployed to different
+ * audit trails or even to the same audit trail multiple times.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Model OID</em>' attribute.
+ * @see #setModelOID(BigInteger)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_ModelOID()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.Integer"
+ * extendedMetaData="kind='attribute' name='modelOID' namespace='##targetNamespace'"
+ * @generated
+ */
+ BigInteger getModelOID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getModelOID <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model OID</em>' attribute.
+ * @see #getModelOID()
+ * @generated
+ */
+ void setModelOID(BigInteger value);
+
+ /**
+ * Returns the value of the '<em><b>Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * A 64-bit number uniquely identifying the model in the model repository.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Oid</em>' attribute.
+ * @see #isSetOid()
+ * @see #unsetOid()
+ * @see #setOid(long)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_Oid()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Long"
+ * extendedMetaData="kind='attribute' name='oid' namespace='##targetNamespace'"
+ * @generated
+ */
+ long getOid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Oid</em>' attribute.
+ * @see #isSetOid()
+ * @see #unsetOid()
+ * @see #getOid()
+ * @generated
+ */
+ void setOid(long value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOid()
+ * @see #getOid()
+ * @see #setOid(long)
+ * @generated
+ */
+ void unsetOid();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getOid <em>Oid</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Oid</em>' attribute is set.
+ * @see #unsetOid()
+ * @see #getOid()
+ * @see #setOid(long)
+ * @generated
+ */
+ boolean isSetOid();
+
+ /**
+ * Returns the value of the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The vendor of the software used to create and edit this model. Usually
+ * this will be "carnot".
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Vendor</em>' attribute.
+ * @see #setVendor(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustModelType_Vendor()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='vendor' namespace='##targetNamespace'"
+ * @generated
+ */
+ String getVendor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType#getVendor <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vendor</em>' attribute.
+ * @see #getVendor()
+ * @generated
+ */
+ void setVendor(String value);
+
+} // StardustModelType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSeqenceFlowType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSeqenceFlowType.java
new file mode 100644
index 0000000..856b8a9
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSeqenceFlowType.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Seqence Flow Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal <em>Fork On Traversal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustSeqenceFlowType()
+ * @model extendedMetaData="name='StardustSeqenceFlow_._type' kind='empty'"
+ * @generated
+ */
+public interface StardustSeqenceFlowType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Fork On Traversal</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fork On Traversal</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fork On Traversal</em>' attribute.
+ * @see #isSetForkOnTraversal()
+ * @see #unsetForkOnTraversal()
+ * @see #setForkOnTraversal(boolean)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustSeqenceFlowType_ForkOnTraversal()
+ * @model default="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='forkOnTraversal'"
+ * @generated
+ */
+ boolean isForkOnTraversal();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal <em>Fork On Traversal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fork On Traversal</em>' attribute.
+ * @see #isSetForkOnTraversal()
+ * @see #unsetForkOnTraversal()
+ * @see #isForkOnTraversal()
+ * @generated
+ */
+ void setForkOnTraversal(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal <em>Fork On Traversal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetForkOnTraversal()
+ * @see #isForkOnTraversal()
+ * @see #setForkOnTraversal(boolean)
+ * @generated
+ */
+ void unsetForkOnTraversal();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType#isForkOnTraversal <em>Fork On Traversal</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Fork On Traversal</em>' attribute is set.
+ * @see #unsetForkOnTraversal()
+ * @see #isForkOnTraversal()
+ * @see #setForkOnTraversal(boolean)
+ * @generated
+ */
+ boolean isSetForkOnTraversal();
+
+} // StardustSeqenceFlowType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java
new file mode 100644
index 0000000..c365a8c
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustServiceTaskType.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Service Task Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType#getApplication <em>Application</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustServiceTaskType()
+ * @model extendedMetaData="name='StardustServiceTask_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustServiceTaskType extends TStardustActivity {
+ /**
+ * Returns the value of the '<em><b>Application</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The model id of the application to execute when the attribute
+ * "implementation" is set to "Application".
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Application</em>' attribute.
+ * @see #setApplication(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustServiceTaskType_Application()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='application'"
+ * @generated
+ */
+ String getApplication();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType#getApplication <em>Application</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Application</em>' attribute.
+ * @see #getApplication()
+ * @generated
+ */
+ void setApplication(String value);
+
+} // StardustServiceTaskType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustStartEventType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustStartEventType.java
new file mode 100644
index 0000000..6e52aec
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustStartEventType.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustStartEventType()
+ * @model extendedMetaData="name='StardustStartEvent_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustStartEventType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #setStardustAttributes(StardustAttributesType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustStartEventType_StardustAttributes()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='StardustAttributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustAttributesType getStardustAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType#getStardustAttributes <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #getStardustAttributes()
+ * @generated
+ */
+ void setStardustAttributes(StardustAttributesType value);
+
+} // StardustStartEventType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSubprocessType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSubprocessType.java
new file mode 100644
index 0000000..52f6d02
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustSubprocessType.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Subprocess Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType#getImplementationProcess <em>Implementation Process</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustSubprocessType()
+ * @model extendedMetaData="name='StardustSubprocess_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustSubprocessType extends TStardustActivity {
+ /**
+ * Returns the value of the '<em><b>Implementation Process</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * The model id of the subprocess implementing the activity when the
+ * attribute "implementation" is set to "Subprocess".
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Implementation Process</em>' attribute.
+ * @see #setImplementationProcess(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustSubprocessType_ImplementationProcess()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='implementationProcess'"
+ * @generated
+ */
+ String getImplementationProcess();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType#getImplementationProcess <em>Implementation Process</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implementation Process</em>' attribute.
+ * @see #getImplementationProcess()
+ * @generated
+ */
+ void setImplementationProcess(String value);
+
+} // StardustSubprocessType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTimerStartEventType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTimerStartEventType.java
new file mode 100644
index 0000000..8f45ecd
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustTimerStartEventType.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust Timer Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustTimerStartEventType()
+ * @model extendedMetaData="name='StardustTimerStartEvent_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustTimerStartEventType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Stardust Attributes</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stardust Attributes</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #setStardustAttributes(StardustAttributesType)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustTimerStartEventType_StardustAttributes()
+ * @model containment="true" required="true"
+ * extendedMetaData="kind='element' name='StardustAttributes' namespace='##targetNamespace'"
+ * @generated
+ */
+ StardustAttributesType getStardustAttributes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType#getStardustAttributes <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stardust Attributes</em>' containment reference.
+ * @see #getStardustAttributes()
+ * @generated
+ */
+ void setStardustAttributes(StardustAttributesType value);
+
+} // StardustTimerStartEventType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java
new file mode 100644
index 0000000..a6ac2fb
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/StardustUserTaskType.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stardust User Task Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer <em>Allows Abort By Performer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustUserTaskType()
+ * @model extendedMetaData="name='StardustUserTask_._type' kind='elementOnly'"
+ * @generated
+ */
+public interface StardustUserTaskType extends TStardustActivity {
+ /**
+ * Returns the value of the '<em><b>Allows Abort By Performer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Determines whether the activity is allowed to be aborted.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Allows Abort By Performer</em>' attribute.
+ * @see #isSetAllowsAbortByPerformer()
+ * @see #unsetAllowsAbortByPerformer()
+ * @see #setAllowsAbortByPerformer(boolean)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getStardustUserTaskType_AllowsAbortByPerformer()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='allowsAbortByPerformer'"
+ * @generated
+ */
+ boolean isAllowsAbortByPerformer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer <em>Allows Abort By Performer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Allows Abort By Performer</em>' attribute.
+ * @see #isSetAllowsAbortByPerformer()
+ * @see #unsetAllowsAbortByPerformer()
+ * @see #isAllowsAbortByPerformer()
+ * @generated
+ */
+ void setAllowsAbortByPerformer(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer <em>Allows Abort By Performer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAllowsAbortByPerformer()
+ * @see #isAllowsAbortByPerformer()
+ * @see #setAllowsAbortByPerformer(boolean)
+ * @generated
+ */
+ void unsetAllowsAbortByPerformer();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType#isAllowsAbortByPerformer <em>Allows Abort By Performer</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Allows Abort By Performer</em>' attribute is set.
+ * @see #unsetAllowsAbortByPerformer()
+ * @see #isAllowsAbortByPerformer()
+ * @see #setAllowsAbortByPerformer(boolean)
+ * @generated
+ */
+ boolean isSetAllowsAbortByPerformer();
+
+} // StardustUserTaskType
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustActivity.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustActivity.java
new file mode 100644
index 0000000..de5c233
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustActivity.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.stardust.model.xpdl.carnot.DataMappingType;
+import org.eclipse.stardust.model.xpdl.carnot.EventHandlerType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TStardust Activity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getEventHandler <em>Event Handler</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#getDataMapping <em>Data Mapping</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation <em>Hibernate On Creation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustActivity()
+ * @model extendedMetaData="name='tStardustActivity' kind='elementOnly'"
+ * @generated
+ */
+public interface TStardustActivity extends TStardustCommon {
+ /**
+ * Returns the value of the '<em><b>Event Handler</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.stardust.model.xpdl.carnot.EventHandlerType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The list of event handlers defined for this model element.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Event Handler</em>' containment reference list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustActivity_EventHandler()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='eventHandler' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<EventHandlerType> getEventHandler();
+
+ /**
+ * Returns the value of the '<em><b>Data Mapping</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.stardust.model.xpdl.carnot.DataMappingType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The list of data mappings.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Data Mapping</em>' containment reference list.
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustActivity_DataMapping()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='dataMapping' namespace='##targetNamespace'"
+ * @generated
+ */
+ EList<DataMappingType> getDataMapping();
+
+ /**
+ * Returns the value of the '<em><b>Hibernate On Creation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ *
+ * Determines whether an activity instance is hibernated immediately after beeing created.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Hibernate On Creation</em>' attribute.
+ * @see #isSetHibernateOnCreation()
+ * @see #unsetHibernateOnCreation()
+ * @see #setHibernateOnCreation(boolean)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustActivity_HibernateOnCreation()
+ * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * extendedMetaData="kind='attribute' name='hibernateOnCreation'"
+ * @generated
+ */
+ boolean isHibernateOnCreation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation <em>Hibernate On Creation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hibernate On Creation</em>' attribute.
+ * @see #isSetHibernateOnCreation()
+ * @see #unsetHibernateOnCreation()
+ * @see #isHibernateOnCreation()
+ * @generated
+ */
+ void setHibernateOnCreation(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation <em>Hibernate On Creation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetHibernateOnCreation()
+ * @see #isHibernateOnCreation()
+ * @see #setHibernateOnCreation(boolean)
+ * @generated
+ */
+ void unsetHibernateOnCreation();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity#isHibernateOnCreation <em>Hibernate On Creation</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Hibernate On Creation</em>' attribute is set.
+ * @see #unsetHibernateOnCreation()
+ * @see #isHibernateOnCreation()
+ * @see #setHibernateOnCreation(boolean)
+ * @generated
+ */
+ boolean isSetHibernateOnCreation();
+
+} // TStardustActivity
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustCommon.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustCommon.java
new file mode 100644
index 0000000..8d7b3c6
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/TStardustCommon.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TStardust Common</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon#getElementOid <em>Element Oid</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustCommon()
+ * @model extendedMetaData="name='tStardustCommon' kind='empty'"
+ * @generated
+ */
+public interface TStardustCommon extends EObject {
+ /**
+ * Returns the value of the '<em><b>Element Oid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Oid</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element Oid</em>' attribute.
+ * @see #setElementOid(String)
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#getTStardustCommon_ElementOid()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='attribute' name='elementOid'"
+ * @generated
+ */
+ String getElementOid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon#getElementOid <em>Element Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element Oid</em>' attribute.
+ * @see #getElementOid()
+ * @generated
+ */
+ void setElementOid(String value);
+
+} // TStardustCommon
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/DocumentRootImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/DocumentRootImpl.java
new file mode 100644
index 0000000..258c1c7
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/DocumentRootImpl.java
@@ -0,0 +1,1060 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import java.math.BigInteger;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Document Root</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustActivity <em>Stardust Activity</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustCommon <em>Stardust Common</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustMessageStartEvent <em>Stardust Message Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustModel <em>Stardust Model</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustSeqenceFlow <em>Stardust Seqence Flow</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustServiceTask <em>Stardust Service Task</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustStartEvent <em>Stardust Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustSubprocess <em>Stardust Subprocess</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustTimerStartEvent <em>Stardust Timer Start Event</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getStardustUserTask <em>Stardust User Task</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getCarnotVersion <em>Carnot Version</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getCreated <em>Created</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getModelOID <em>Model OID</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getOid <em>Oid</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.DocumentRootImpl#getVendor <em>Vendor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DocumentRootImpl extends EObjectImpl implements DocumentRoot {
+ /**
+ * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMixed()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap mixed;
+
+ /**
+ * The cached value of the '{@link #getXMLNSPrefixMap() <em>XMLNS Prefix Map</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXMLNSPrefixMap()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> xMLNSPrefixMap;
+
+ /**
+ * The cached value of the '{@link #getXSISchemaLocation() <em>XSI Schema Location</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXSISchemaLocation()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> xSISchemaLocation;
+
+ /**
+ * The default value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected static final String AUTHOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected String author = AUTHOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCarnotVersion() <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCarnotVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String CARNOT_VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCarnotVersion() <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCarnotVersion()
+ * @generated
+ * @ordered
+ */
+ protected String carnotVersion = CARNOT_VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreated() <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreated()
+ * @generated
+ * @ordered
+ */
+ protected static final XMLGregorianCalendar CREATED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreated() <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreated()
+ * @generated
+ * @ordered
+ */
+ protected XMLGregorianCalendar created = CREATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getModelOID() <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelOID()
+ * @generated
+ * @ordered
+ */
+ protected static final BigInteger MODEL_OID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getModelOID() <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelOID()
+ * @generated
+ * @ordered
+ */
+ protected BigInteger modelOID = MODEL_OID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOid() <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOid()
+ * @generated
+ * @ordered
+ */
+ protected static final long OID_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getOid() <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOid()
+ * @generated
+ * @ordered
+ */
+ protected long oid = OID_EDEFAULT;
+
+ /**
+ * This is true if the Oid attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean oidESet;
+
+ /**
+ * The default value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVendor()
+ * @generated
+ * @ordered
+ */
+ protected static final String VENDOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVendor()
+ * @generated
+ * @ordered
+ */
+ protected String vendor = VENDOR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DocumentRootImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.DOCUMENT_ROOT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getMixed() {
+ if (mixed == null) {
+ mixed = new BasicFeatureMap(this, SdbpmnPackage.DOCUMENT_ROOT__MIXED);
+ }
+ return mixed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EMap<String, String> getXMLNSPrefixMap() {
+ if (xMLNSPrefixMap == null) {
+ xMLNSPrefixMap = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ }
+ return xMLNSPrefixMap;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EMap<String, String> getXSISchemaLocation() {
+ if (xSISchemaLocation == null) {
+ xSISchemaLocation = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ }
+ return xSISchemaLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TStardustActivity getStardustActivity() {
+ return (TStardustActivity)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ACTIVITY, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustActivity(TStardustActivity newStardustActivity, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ACTIVITY, newStardustActivity, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustActivity(TStardustActivity newStardustActivity) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ACTIVITY, newStardustActivity);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustAttributesType getStardustAttributes() {
+ return (StardustAttributesType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ATTRIBUTES, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustAttributes(StardustAttributesType newStardustAttributes, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ATTRIBUTES, newStardustAttributes, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustAttributes(StardustAttributesType newStardustAttributes) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_ATTRIBUTES, newStardustAttributes);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TStardustCommon getStardustCommon() {
+ return (TStardustCommon)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_COMMON, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustCommon(TStardustCommon newStardustCommon, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_COMMON, newStardustCommon, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustCommon(TStardustCommon newStardustCommon) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_COMMON, newStardustCommon);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustMessageStartEventType getStardustMessageStartEvent() {
+ return (StardustMessageStartEventType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustMessageStartEvent(StardustMessageStartEventType newStardustMessageStartEvent, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT, newStardustMessageStartEvent, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustMessageStartEvent(StardustMessageStartEventType newStardustMessageStartEvent) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT, newStardustMessageStartEvent);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustModelType getStardustModel() {
+ return (StardustModelType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MODEL, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustModel(StardustModelType newStardustModel, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MODEL, newStardustModel, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustModel(StardustModelType newStardustModel) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_MODEL, newStardustModel);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustSeqenceFlowType getStardustSeqenceFlow() {
+ return (StardustSeqenceFlowType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustSeqenceFlow(StardustSeqenceFlowType newStardustSeqenceFlow, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW, newStardustSeqenceFlow, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustSeqenceFlow(StardustSeqenceFlowType newStardustSeqenceFlow) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW, newStardustSeqenceFlow);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustServiceTaskType getStardustServiceTask() {
+ return (StardustServiceTaskType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SERVICE_TASK, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustServiceTask(StardustServiceTaskType newStardustServiceTask, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SERVICE_TASK, newStardustServiceTask, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustServiceTask(StardustServiceTaskType newStardustServiceTask) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SERVICE_TASK, newStardustServiceTask);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustStartEventType getStardustStartEvent() {
+ return (StardustStartEventType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_START_EVENT, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustStartEvent(StardustStartEventType newStardustStartEvent, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_START_EVENT, newStardustStartEvent, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustStartEvent(StardustStartEventType newStardustStartEvent) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_START_EVENT, newStardustStartEvent);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustSubprocessType getStardustSubprocess() {
+ return (StardustSubprocessType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SUBPROCESS, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustSubprocess(StardustSubprocessType newStardustSubprocess, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SUBPROCESS, newStardustSubprocess, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustSubprocess(StardustSubprocessType newStardustSubprocess) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_SUBPROCESS, newStardustSubprocess);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustTimerStartEventType getStardustTimerStartEvent() {
+ return (StardustTimerStartEventType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustTimerStartEvent(StardustTimerStartEventType newStardustTimerStartEvent, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT, newStardustTimerStartEvent, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustTimerStartEvent(StardustTimerStartEventType newStardustTimerStartEvent) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT, newStardustTimerStartEvent);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustUserTaskType getStardustUserTask() {
+ return (StardustUserTaskType)getMixed().get(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_USER_TASK, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustUserTask(StardustUserTaskType newStardustUserTask, NotificationChain msgs) {
+ return ((FeatureMap.Internal)getMixed()).basicAdd(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_USER_TASK, newStardustUserTask, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustUserTask(StardustUserTaskType newStardustUserTask) {
+ ((FeatureMap.Internal)getMixed()).set(SdbpmnPackage.Literals.DOCUMENT_ROOT__STARDUST_USER_TASK, newStardustUserTask);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAuthor() {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(String newAuthor) {
+ String oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__AUTHOR, oldAuthor, author));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCarnotVersion() {
+ return carnotVersion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCarnotVersion(String newCarnotVersion) {
+ String oldCarnotVersion = carnotVersion;
+ carnotVersion = newCarnotVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__CARNOT_VERSION, oldCarnotVersion, carnotVersion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XMLGregorianCalendar getCreated() {
+ return created;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreated(XMLGregorianCalendar newCreated) {
+ XMLGregorianCalendar oldCreated = created;
+ created = newCreated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__CREATED, oldCreated, created));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigInteger getModelOID() {
+ return modelOID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModelOID(BigInteger newModelOID) {
+ BigInteger oldModelOID = modelOID;
+ modelOID = newModelOID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__MODEL_OID, oldModelOID, modelOID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getOid() {
+ return oid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOid(long newOid) {
+ long oldOid = oid;
+ oid = newOid;
+ boolean oldOidESet = oidESet;
+ oidESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__OID, oldOid, oid, !oldOidESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOid() {
+ long oldOid = oid;
+ boolean oldOidESet = oidESet;
+ oid = OID_EDEFAULT;
+ oidESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SdbpmnPackage.DOCUMENT_ROOT__OID, oldOid, OID_EDEFAULT, oldOidESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOid() {
+ return oidESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVendor() {
+ return vendor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVendor(String newVendor) {
+ String oldVendor = vendor;
+ vendor = newVendor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.DOCUMENT_ROOT__VENDOR, oldVendor, vendor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SdbpmnPackage.DOCUMENT_ROOT__MIXED:
+ return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
+ return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
+ return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ACTIVITY:
+ return basicSetStardustActivity(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ATTRIBUTES:
+ return basicSetStardustAttributes(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_COMMON:
+ return basicSetStardustCommon(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT:
+ return basicSetStardustMessageStartEvent(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MODEL:
+ return basicSetStardustModel(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW:
+ return basicSetStardustSeqenceFlow(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SERVICE_TASK:
+ return basicSetStardustServiceTask(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_START_EVENT:
+ return basicSetStardustStartEvent(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SUBPROCESS:
+ return basicSetStardustSubprocess(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT:
+ return basicSetStardustTimerStartEvent(null, msgs);
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_USER_TASK:
+ return basicSetStardustUserTask(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.DOCUMENT_ROOT__MIXED:
+ if (coreType) return getMixed();
+ return ((FeatureMap.Internal)getMixed()).getWrapper();
+ case SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
+ if (coreType) return getXMLNSPrefixMap();
+ else return getXMLNSPrefixMap().map();
+ case SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
+ if (coreType) return getXSISchemaLocation();
+ else return getXSISchemaLocation().map();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ACTIVITY:
+ return getStardustActivity();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ATTRIBUTES:
+ return getStardustAttributes();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_COMMON:
+ return getStardustCommon();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT:
+ return getStardustMessageStartEvent();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MODEL:
+ return getStardustModel();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW:
+ return getStardustSeqenceFlow();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SERVICE_TASK:
+ return getStardustServiceTask();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_START_EVENT:
+ return getStardustStartEvent();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SUBPROCESS:
+ return getStardustSubprocess();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT:
+ return getStardustTimerStartEvent();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_USER_TASK:
+ return getStardustUserTask();
+ case SdbpmnPackage.DOCUMENT_ROOT__AUTHOR:
+ return getAuthor();
+ case SdbpmnPackage.DOCUMENT_ROOT__CARNOT_VERSION:
+ return getCarnotVersion();
+ case SdbpmnPackage.DOCUMENT_ROOT__CREATED:
+ return getCreated();
+ case SdbpmnPackage.DOCUMENT_ROOT__MODEL_OID:
+ return getModelOID();
+ case SdbpmnPackage.DOCUMENT_ROOT__OID:
+ return getOid();
+ case SdbpmnPackage.DOCUMENT_ROOT__VENDOR:
+ return getVendor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.DOCUMENT_ROOT__MIXED:
+ ((FeatureMap.Internal)getMixed()).set(newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
+ ((EStructuralFeature.Setting)getXMLNSPrefixMap()).set(newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
+ ((EStructuralFeature.Setting)getXSISchemaLocation()).set(newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ACTIVITY:
+ setStardustActivity((TStardustActivity)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_COMMON:
+ setStardustCommon((TStardustCommon)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT:
+ setStardustMessageStartEvent((StardustMessageStartEventType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MODEL:
+ setStardustModel((StardustModelType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW:
+ setStardustSeqenceFlow((StardustSeqenceFlowType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SERVICE_TASK:
+ setStardustServiceTask((StardustServiceTaskType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_START_EVENT:
+ setStardustStartEvent((StardustStartEventType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SUBPROCESS:
+ setStardustSubprocess((StardustSubprocessType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT:
+ setStardustTimerStartEvent((StardustTimerStartEventType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_USER_TASK:
+ setStardustUserTask((StardustUserTaskType)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__AUTHOR:
+ setAuthor((String)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__CARNOT_VERSION:
+ setCarnotVersion((String)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__CREATED:
+ setCreated((XMLGregorianCalendar)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__MODEL_OID:
+ setModelOID((BigInteger)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__OID:
+ setOid((Long)newValue);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__VENDOR:
+ setVendor((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.DOCUMENT_ROOT__MIXED:
+ getMixed().clear();
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
+ getXMLNSPrefixMap().clear();
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
+ getXSISchemaLocation().clear();
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ACTIVITY:
+ setStardustActivity((TStardustActivity)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_COMMON:
+ setStardustCommon((TStardustCommon)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT:
+ setStardustMessageStartEvent((StardustMessageStartEventType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MODEL:
+ setStardustModel((StardustModelType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW:
+ setStardustSeqenceFlow((StardustSeqenceFlowType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SERVICE_TASK:
+ setStardustServiceTask((StardustServiceTaskType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_START_EVENT:
+ setStardustStartEvent((StardustStartEventType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SUBPROCESS:
+ setStardustSubprocess((StardustSubprocessType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT:
+ setStardustTimerStartEvent((StardustTimerStartEventType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_USER_TASK:
+ setStardustUserTask((StardustUserTaskType)null);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__AUTHOR:
+ setAuthor(AUTHOR_EDEFAULT);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__CARNOT_VERSION:
+ setCarnotVersion(CARNOT_VERSION_EDEFAULT);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__CREATED:
+ setCreated(CREATED_EDEFAULT);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__MODEL_OID:
+ setModelOID(MODEL_OID_EDEFAULT);
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__OID:
+ unsetOid();
+ return;
+ case SdbpmnPackage.DOCUMENT_ROOT__VENDOR:
+ setVendor(VENDOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.DOCUMENT_ROOT__MIXED:
+ return mixed != null && !mixed.isEmpty();
+ case SdbpmnPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
+ return xMLNSPrefixMap != null && !xMLNSPrefixMap.isEmpty();
+ case SdbpmnPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
+ return xSISchemaLocation != null && !xSISchemaLocation.isEmpty();
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ACTIVITY:
+ return getStardustActivity() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_ATTRIBUTES:
+ return getStardustAttributes() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_COMMON:
+ return getStardustCommon() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT:
+ return getStardustMessageStartEvent() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_MODEL:
+ return getStardustModel() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW:
+ return getStardustSeqenceFlow() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SERVICE_TASK:
+ return getStardustServiceTask() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_START_EVENT:
+ return getStardustStartEvent() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_SUBPROCESS:
+ return getStardustSubprocess() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT:
+ return getStardustTimerStartEvent() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__STARDUST_USER_TASK:
+ return getStardustUserTask() != null;
+ case SdbpmnPackage.DOCUMENT_ROOT__AUTHOR:
+ return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT.equals(author);
+ case SdbpmnPackage.DOCUMENT_ROOT__CARNOT_VERSION:
+ return CARNOT_VERSION_EDEFAULT == null ? carnotVersion != null : !CARNOT_VERSION_EDEFAULT.equals(carnotVersion);
+ case SdbpmnPackage.DOCUMENT_ROOT__CREATED:
+ return CREATED_EDEFAULT == null ? created != null : !CREATED_EDEFAULT.equals(created);
+ case SdbpmnPackage.DOCUMENT_ROOT__MODEL_OID:
+ return MODEL_OID_EDEFAULT == null ? modelOID != null : !MODEL_OID_EDEFAULT.equals(modelOID);
+ case SdbpmnPackage.DOCUMENT_ROOT__OID:
+ return isSetOid();
+ case SdbpmnPackage.DOCUMENT_ROOT__VENDOR:
+ return VENDOR_EDEFAULT == null ? vendor != null : !VENDOR_EDEFAULT.equals(vendor);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mixed: ");
+ result.append(mixed);
+ result.append(", author: ");
+ result.append(author);
+ result.append(", carnotVersion: ");
+ result.append(carnotVersion);
+ result.append(", created: ");
+ result.append(created);
+ result.append(", modelOID: ");
+ result.append(modelOID);
+ result.append(", oid: ");
+ if (oidESet) result.append(oid); else result.append("<unset>");
+ result.append(", vendor: ");
+ result.append(vendor);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DocumentRootImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnFactoryImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnFactoryImpl.java
new file mode 100644
index 0000000..b03964a
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnFactoryImpl.java
@@ -0,0 +1,220 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SdbpmnFactoryImpl extends EFactoryImpl implements SdbpmnFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SdbpmnFactory init() {
+ try {
+ SdbpmnFactory theSdbpmnFactory = (SdbpmnFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/stardust/bpmn20/sdbpmn");
+ if (theSdbpmnFactory != null) {
+ return theSdbpmnFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SdbpmnFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SdbpmnFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case SdbpmnPackage.DOCUMENT_ROOT: return createDocumentRoot();
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE: return createStardustAttributesType();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE: return createStardustMessageStartEventType();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE: return createStardustModelType();
+ case SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE: return createStardustSeqenceFlowType();
+ case SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE: return createStardustServiceTaskType();
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE: return createStardustStartEventType();
+ case SdbpmnPackage.STARDUST_SUBPROCESS_TYPE: return createStardustSubprocessType();
+ case SdbpmnPackage.STARDUST_TIMER_START_EVENT_TYPE: return createStardustTimerStartEventType();
+ case SdbpmnPackage.STARDUST_USER_TASK_TYPE: return createStardustUserTaskType();
+ case SdbpmnPackage.TSTARDUST_ACTIVITY: return createTStardustActivity();
+ case SdbpmnPackage.TSTARDUST_COMMON: return createTStardustCommon();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DocumentRoot createDocumentRoot() {
+ DocumentRootImpl documentRoot = new DocumentRootImpl();
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustAttributesType createStardustAttributesType() {
+ StardustAttributesTypeImpl stardustAttributesType = new StardustAttributesTypeImpl();
+ return stardustAttributesType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustMessageStartEventType createStardustMessageStartEventType() {
+ StardustMessageStartEventTypeImpl stardustMessageStartEventType = new StardustMessageStartEventTypeImpl();
+ return stardustMessageStartEventType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustModelType createStardustModelType() {
+ StardustModelTypeImpl stardustModelType = new StardustModelTypeImpl();
+ return stardustModelType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustSeqenceFlowType createStardustSeqenceFlowType() {
+ StardustSeqenceFlowTypeImpl stardustSeqenceFlowType = new StardustSeqenceFlowTypeImpl();
+ return stardustSeqenceFlowType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustServiceTaskType createStardustServiceTaskType() {
+ StardustServiceTaskTypeImpl stardustServiceTaskType = new StardustServiceTaskTypeImpl();
+ return stardustServiceTaskType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustStartEventType createStardustStartEventType() {
+ StardustStartEventTypeImpl stardustStartEventType = new StardustStartEventTypeImpl();
+ return stardustStartEventType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustSubprocessType createStardustSubprocessType() {
+ StardustSubprocessTypeImpl stardustSubprocessType = new StardustSubprocessTypeImpl();
+ return stardustSubprocessType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustTimerStartEventType createStardustTimerStartEventType() {
+ StardustTimerStartEventTypeImpl stardustTimerStartEventType = new StardustTimerStartEventTypeImpl();
+ return stardustTimerStartEventType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustUserTaskType createStardustUserTaskType() {
+ StardustUserTaskTypeImpl stardustUserTaskType = new StardustUserTaskTypeImpl();
+ return stardustUserTaskType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TStardustActivity createTStardustActivity() {
+ TStardustActivityImpl tStardustActivity = new TStardustActivityImpl();
+ return tStardustActivity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TStardustCommon createTStardustCommon() {
+ TStardustCommonImpl tStardustCommon = new TStardustCommonImpl();
+ return tStardustCommon;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SdbpmnPackage getSdbpmnPackage() {
+ return (SdbpmnPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static SdbpmnPackage getPackage() {
+ return SdbpmnPackage.eINSTANCE;
+ }
+
+} //SdbpmnFactoryImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnPackageImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnPackageImpl.java
new file mode 100644
index 0000000..cf28283
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/SdbpmnPackageImpl.java
@@ -0,0 +1,1288 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.DocumentRoot;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnFactory;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustUserTaskType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustActivity;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.TStardustCommon;
+import org.eclipse.stardust.model.xpdl.carnot.CarnotWorkflowModelPackage;
+
+import org.eclipse.stardust.model.xpdl.xpdl2.extensions.ExtensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SdbpmnPackageImpl extends EPackageImpl implements SdbpmnPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustAttributesTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustMessageStartEventTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustModelTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustSeqenceFlowTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustServiceTaskTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustStartEventTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustSubprocessTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustTimerStartEventTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stardustUserTaskTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tStardustActivityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tStardustCommonEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SdbpmnPackageImpl() {
+ super(eNS_URI, SdbpmnFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link SdbpmnPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static SdbpmnPackage init() {
+ if (isInited) return (SdbpmnPackage)EPackage.Registry.INSTANCE.getEPackage(SdbpmnPackage.eNS_URI);
+
+ // Obtain or create and register package
+ SdbpmnPackageImpl theSdbpmnPackage = (SdbpmnPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SdbpmnPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SdbpmnPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ CarnotWorkflowModelPackage.eINSTANCE.eClass();
+ ExtensionPackage.eINSTANCE.eClass();
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theSdbpmnPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSdbpmnPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSdbpmnPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(SdbpmnPackage.eNS_URI, theSdbpmnPackage);
+ return theSdbpmnPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDocumentRoot() {
+ return documentRootEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Mixed() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_XMLNSPrefixMap() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_XSISchemaLocation() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustActivity() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustAttributes() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustCommon() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustMessageStartEvent() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustModel() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustSeqenceFlow() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustServiceTask() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustStartEvent() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustSubprocess() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustTimerStartEvent() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDocumentRoot_StardustUserTask() {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Author() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_CarnotVersion() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Created() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_ModelOID() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(17);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Oid() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(18);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Vendor() {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(19);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustAttributesType() {
+ return stardustAttributesTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustAttributesType_AttributeType() {
+ return (EReference)stardustAttributesTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustMessageStartEventType() {
+ return stardustMessageStartEventTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustMessageStartEventType_StardustAttributes() {
+ return (EReference)stardustMessageStartEventTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustMessageStartEventType_AccessPoint() {
+ return (EReference)stardustMessageStartEventTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustMessageStartEventType_ParameterMapping() {
+ return (EReference)stardustMessageStartEventTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustMessageStartEventType_Type() {
+ return (EAttribute)stardustMessageStartEventTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustModelType() {
+ return stardustModelTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_Author() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_CarnotVersion() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_Created() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_ModelOID() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_Oid() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustModelType_Vendor() {
+ return (EAttribute)stardustModelTypeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustSeqenceFlowType() {
+ return stardustSeqenceFlowTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustSeqenceFlowType_ForkOnTraversal() {
+ return (EAttribute)stardustSeqenceFlowTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustServiceTaskType() {
+ return stardustServiceTaskTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustServiceTaskType_Application() {
+ return (EAttribute)stardustServiceTaskTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustStartEventType() {
+ return stardustStartEventTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustStartEventType_StardustAttributes() {
+ return (EReference)stardustStartEventTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustSubprocessType() {
+ return stardustSubprocessTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustSubprocessType_ImplementationProcess() {
+ return (EAttribute)stardustSubprocessTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustTimerStartEventType() {
+ return stardustTimerStartEventTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStardustTimerStartEventType_StardustAttributes() {
+ return (EReference)stardustTimerStartEventTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStardustUserTaskType() {
+ return stardustUserTaskTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStardustUserTaskType_AllowsAbortByPerformer() {
+ return (EAttribute)stardustUserTaskTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTStardustActivity() {
+ return tStardustActivityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTStardustActivity_EventHandler() {
+ return (EReference)tStardustActivityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTStardustActivity_DataMapping() {
+ return (EReference)tStardustActivityEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTStardustActivity_HibernateOnCreation() {
+ return (EAttribute)tStardustActivityEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTStardustCommon() {
+ return tStardustCommonEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTStardustCommon_ElementOid() {
+ return (EAttribute)tStardustCommonEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SdbpmnFactory getSdbpmnFactory() {
+ return (SdbpmnFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_ACTIVITY);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_ATTRIBUTES);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_COMMON);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_MESSAGE_START_EVENT);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_MODEL);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_SEQENCE_FLOW);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_SERVICE_TASK);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_START_EVENT);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_SUBPROCESS);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_TIMER_START_EVENT);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__STARDUST_USER_TASK);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__AUTHOR);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__CARNOT_VERSION);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__CREATED);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MODEL_OID);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__OID);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__VENDOR);
+
+ stardustAttributesTypeEClass = createEClass(STARDUST_ATTRIBUTES_TYPE);
+ createEReference(stardustAttributesTypeEClass, STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE);
+
+ stardustMessageStartEventTypeEClass = createEClass(STARDUST_MESSAGE_START_EVENT_TYPE);
+ createEReference(stardustMessageStartEventTypeEClass, STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES);
+ createEReference(stardustMessageStartEventTypeEClass, STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT);
+ createEReference(stardustMessageStartEventTypeEClass, STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING);
+ createEAttribute(stardustMessageStartEventTypeEClass, STARDUST_MESSAGE_START_EVENT_TYPE__TYPE);
+
+ stardustModelTypeEClass = createEClass(STARDUST_MODEL_TYPE);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__AUTHOR);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__CARNOT_VERSION);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__CREATED);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__MODEL_OID);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__OID);
+ createEAttribute(stardustModelTypeEClass, STARDUST_MODEL_TYPE__VENDOR);
+
+ stardustSeqenceFlowTypeEClass = createEClass(STARDUST_SEQENCE_FLOW_TYPE);
+ createEAttribute(stardustSeqenceFlowTypeEClass, STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL);
+
+ stardustServiceTaskTypeEClass = createEClass(STARDUST_SERVICE_TASK_TYPE);
+ createEAttribute(stardustServiceTaskTypeEClass, STARDUST_SERVICE_TASK_TYPE__APPLICATION);
+
+ stardustStartEventTypeEClass = createEClass(STARDUST_START_EVENT_TYPE);
+ createEReference(stardustStartEventTypeEClass, STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES);
+
+ stardustSubprocessTypeEClass = createEClass(STARDUST_SUBPROCESS_TYPE);
+ createEAttribute(stardustSubprocessTypeEClass, STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS);
+
+ stardustTimerStartEventTypeEClass = createEClass(STARDUST_TIMER_START_EVENT_TYPE);
+ createEReference(stardustTimerStartEventTypeEClass, STARDUST_TIMER_START_EVENT_TYPE__STARDUST_ATTRIBUTES);
+
+ stardustUserTaskTypeEClass = createEClass(STARDUST_USER_TASK_TYPE);
+ createEAttribute(stardustUserTaskTypeEClass, STARDUST_USER_TASK_TYPE__ALLOWS_ABORT_BY_PERFORMER);
+
+ tStardustActivityEClass = createEClass(TSTARDUST_ACTIVITY);
+ createEReference(tStardustActivityEClass, TSTARDUST_ACTIVITY__EVENT_HANDLER);
+ createEReference(tStardustActivityEClass, TSTARDUST_ACTIVITY__DATA_MAPPING);
+ createEAttribute(tStardustActivityEClass, TSTARDUST_ACTIVITY__HIBERNATE_ON_CREATION);
+
+ tStardustCommonEClass = createEClass(TSTARDUST_COMMON);
+ createEAttribute(tStardustCommonEClass, TSTARDUST_COMMON__ELEMENT_OID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+ CarnotWorkflowModelPackage theCarnotWorkflowModelPackage = (CarnotWorkflowModelPackage)EPackage.Registry.INSTANCE.getEPackage(CarnotWorkflowModelPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ stardustServiceTaskTypeEClass.getESuperTypes().add(this.getTStardustActivity());
+ stardustSubprocessTypeEClass.getESuperTypes().add(this.getTStardustActivity());
+ stardustUserTaskTypeEClass.getESuperTypes().add(this.getTStardustActivity());
+ tStardustActivityEClass.getESuperTypes().add(this.getTStardustCommon());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(documentRootEClass, DocumentRoot.class, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustActivity(), this.getTStardustActivity(), null, "stardustActivity", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustAttributes(), this.getStardustAttributesType(), null, "stardustAttributes", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustCommon(), this.getTStardustCommon(), null, "stardustCommon", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustMessageStartEvent(), this.getStardustMessageStartEventType(), null, "stardustMessageStartEvent", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustModel(), this.getStardustModelType(), null, "stardustModel", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustSeqenceFlow(), this.getStardustSeqenceFlowType(), null, "stardustSeqenceFlow", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustServiceTask(), this.getStardustServiceTaskType(), null, "stardustServiceTask", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustStartEvent(), this.getStardustStartEventType(), null, "stardustStartEvent", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustSubprocess(), this.getStardustSubprocessType(), null, "stardustSubprocess", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustTimerStartEvent(), this.getStardustTimerStartEventType(), null, "stardustTimerStartEvent", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_StardustUserTask(), this.getStardustUserTaskType(), null, "stardustUserTask", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Author(), theXMLTypePackage.getString(), "author", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_CarnotVersion(), theXMLTypePackage.getString(), "carnotVersion", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Created(), theXMLTypePackage.getDateTime(), "created", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_ModelOID(), theXMLTypePackage.getInteger(), "modelOID", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Oid(), theXMLTypePackage.getLong(), "oid", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Vendor(), theXMLTypePackage.getString(), "vendor", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustAttributesTypeEClass, StardustAttributesType.class, "StardustAttributesType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStardustAttributesType_AttributeType(), theCarnotWorkflowModelPackage.getAttributeType(), null, "attributeType", null, 0, -1, StardustAttributesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustMessageStartEventTypeEClass, StardustMessageStartEventType.class, "StardustMessageStartEventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStardustMessageStartEventType_StardustAttributes(), this.getStardustAttributesType(), null, "stardustAttributes", null, 1, 1, StardustMessageStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStardustMessageStartEventType_AccessPoint(), theCarnotWorkflowModelPackage.getAccessPointType(), null, "accessPoint", null, 0, -1, StardustMessageStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStardustMessageStartEventType_ParameterMapping(), theCarnotWorkflowModelPackage.getParameterMappingType(), null, "parameterMapping", null, 0, -1, StardustMessageStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustMessageStartEventType_Type(), theXMLTypePackage.getString(), "type", null, 0, 1, StardustMessageStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustModelTypeEClass, StardustModelType.class, "StardustModelType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStardustModelType_Author(), theXMLTypePackage.getString(), "author", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustModelType_CarnotVersion(), theXMLTypePackage.getString(), "carnotVersion", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustModelType_Created(), theXMLTypePackage.getDateTime(), "created", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustModelType_ModelOID(), theXMLTypePackage.getInteger(), "modelOID", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustModelType_Oid(), theXMLTypePackage.getLong(), "oid", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStardustModelType_Vendor(), theXMLTypePackage.getString(), "vendor", null, 0, 1, StardustModelType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustSeqenceFlowTypeEClass, StardustSeqenceFlowType.class, "StardustSeqenceFlowType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStardustSeqenceFlowType_ForkOnTraversal(), theXMLTypePackage.getBoolean(), "forkOnTraversal", "false", 0, 1, StardustSeqenceFlowType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustServiceTaskTypeEClass, StardustServiceTaskType.class, "StardustServiceTaskType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStardustServiceTaskType_Application(), theXMLTypePackage.getString(), "application", null, 0, 1, StardustServiceTaskType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustStartEventTypeEClass, StardustStartEventType.class, "StardustStartEventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStardustStartEventType_StardustAttributes(), this.getStardustAttributesType(), null, "stardustAttributes", null, 1, 1, StardustStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustSubprocessTypeEClass, StardustSubprocessType.class, "StardustSubprocessType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStardustSubprocessType_ImplementationProcess(), theXMLTypePackage.getString(), "implementationProcess", null, 0, 1, StardustSubprocessType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustTimerStartEventTypeEClass, StardustTimerStartEventType.class, "StardustTimerStartEventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStardustTimerStartEventType_StardustAttributes(), this.getStardustAttributesType(), null, "stardustAttributes", null, 1, 1, StardustTimerStartEventType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stardustUserTaskTypeEClass, StardustUserTaskType.class, "StardustUserTaskType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStardustUserTaskType_AllowsAbortByPerformer(), theXMLTypePackage.getBoolean(), "allowsAbortByPerformer", null, 0, 1, StardustUserTaskType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tStardustActivityEClass, TStardustActivity.class, "TStardustActivity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTStardustActivity_EventHandler(), theCarnotWorkflowModelPackage.getEventHandlerType(), null, "eventHandler", null, 0, -1, TStardustActivity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTStardustActivity_DataMapping(), theCarnotWorkflowModelPackage.getDataMappingType(), null, "dataMapping", null, 0, -1, TStardustActivity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTStardustActivity_HibernateOnCreation(), theXMLTypePackage.getBoolean(), "hibernateOnCreation", null, 0, 1, TStardustActivity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tStardustCommonEClass, TStardustCommon.class, "TStardustCommon", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTStardustCommon_ElementOid(), theXMLTypePackage.getString(), "elementOid", null, 1, 1, TStardustCommon.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations() {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (documentRootEClass,
+ source,
+ new String[] {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_Mixed(),
+ source,
+ new String[] {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_XMLNSPrefixMap(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ (getDocumentRoot_XSISchemaLocation(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustActivity(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustActivity",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustAttributes(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustAttributes",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustCommon(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustCommon",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustMessageStartEvent(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustMessageStartEvent",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustModel(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustModel",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustSeqenceFlow(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustSeqenceFlow",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustServiceTask(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustServiceTask",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustStartEvent(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustStartEvent",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustSubprocess(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustSubprocess",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustTimerStartEvent(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustTimerStartEvent",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_StardustUserTask(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustUserTask",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Author(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "author",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_CarnotVersion(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "carnotVersion",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Created(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "created",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_ModelOID(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "modelOID",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Oid(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "oid",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Vendor(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "vendor",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (stardustAttributesTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustAttributes_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustAttributesType_AttributeType(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "AttributeType",
+ "namespace", "http://www.carnot.ag/workflowmodel/3.1"
+ });
+ addAnnotation
+ (stardustMessageStartEventTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustMessageStartEvent_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustMessageStartEventType_StardustAttributes(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustAttributes",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustMessageStartEventType_AccessPoint(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "accessPoint",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustMessageStartEventType_ParameterMapping(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "parameterMapping",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustMessageStartEventType_Type(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "type"
+ });
+ addAnnotation
+ (stardustModelTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustModel_._type",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getStardustModelType_Author(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "author",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustModelType_CarnotVersion(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "carnotVersion",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustModelType_Created(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "created",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustModelType_ModelOID(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "modelOID",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustModelType_Oid(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "oid",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getStardustModelType_Vendor(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "vendor",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (stardustSeqenceFlowTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustSeqenceFlow_._type",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getStardustSeqenceFlowType_ForkOnTraversal(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "forkOnTraversal"
+ });
+ addAnnotation
+ (stardustServiceTaskTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustServiceTask_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustServiceTaskType_Application(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "application"
+ });
+ addAnnotation
+ (stardustStartEventTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustStartEvent_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustStartEventType_StardustAttributes(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustAttributes",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (stardustSubprocessTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustSubprocess_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustSubprocessType_ImplementationProcess(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "implementationProcess"
+ });
+ addAnnotation
+ (stardustTimerStartEventTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustTimerStartEvent_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustTimerStartEventType_StardustAttributes(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "StardustAttributes",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (stardustUserTaskTypeEClass,
+ source,
+ new String[] {
+ "name", "StardustUserTask_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getStardustUserTaskType_AllowsAbortByPerformer(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "allowsAbortByPerformer"
+ });
+ addAnnotation
+ (tStardustActivityEClass,
+ source,
+ new String[] {
+ "name", "tStardustActivity",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getTStardustActivity_EventHandler(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "eventHandler",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getTStardustActivity_DataMapping(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "dataMapping",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getTStardustActivity_HibernateOnCreation(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "hibernateOnCreation"
+ });
+ addAnnotation
+ (tStardustCommonEClass,
+ source,
+ new String[] {
+ "name", "tStardustCommon",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getTStardustCommon_ElementOid(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "elementOid"
+ });
+ }
+
+} //SdbpmnPackageImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustAttributesTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustAttributesTypeImpl.java
new file mode 100644
index 0000000..f79c7cd
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustAttributesTypeImpl.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import java.util.Collection;
+
+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.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.xpdl.carnot.AttributeType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Attributes Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustAttributesTypeImpl#getAttributeType <em>Attribute Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustAttributesTypeImpl extends EObjectImpl implements StardustAttributesType {
+ /**
+ * The cached value of the '{@link #getAttributeType() <em>Attribute Type</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAttributeType()
+ * @generated
+ * @ordered
+ */
+ protected EList<AttributeType> attributeType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustAttributesTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_ATTRIBUTES_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AttributeType> getAttributeType() {
+ if (attributeType == null) {
+ attributeType = new EObjectContainmentEList<AttributeType>(AttributeType.class, this, SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE);
+ }
+ return attributeType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE:
+ return ((InternalEList<?>)getAttributeType()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE:
+ return getAttributeType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE:
+ getAttributeType().clear();
+ getAttributeType().addAll((Collection<? extends AttributeType>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE:
+ getAttributeType().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_ATTRIBUTES_TYPE__ATTRIBUTE_TYPE:
+ return attributeType != null && !attributeType.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StardustAttributesTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustMessageStartEventTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustMessageStartEventTypeImpl.java
new file mode 100644
index 0000000..e73f3a8
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustMessageStartEventTypeImpl.java
@@ -0,0 +1,331 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import java.util.Collection;
+
+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.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustMessageStartEventType;
+import org.eclipse.stardust.model.xpdl.carnot.AccessPointType;
+import org.eclipse.stardust.model.xpdl.carnot.ParameterMappingType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Message Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl#getAccessPoint <em>Access Point</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl#getParameterMapping <em>Parameter Mapping</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustMessageStartEventTypeImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustMessageStartEventTypeImpl extends EObjectImpl implements StardustMessageStartEventType {
+ /**
+ * The cached value of the '{@link #getStardustAttributes() <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStardustAttributes()
+ * @generated
+ * @ordered
+ */
+ protected StardustAttributesType stardustAttributes;
+
+ /**
+ * The cached value of the '{@link #getAccessPoint() <em>Access Point</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAccessPoint()
+ * @generated
+ * @ordered
+ */
+ protected EList<AccessPointType> accessPoint;
+
+ /**
+ * The cached value of the '{@link #getParameterMapping() <em>Parameter Mapping</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterMapping()
+ * @generated
+ * @ordered
+ */
+ protected EList<ParameterMappingType> parameterMapping;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustMessageStartEventTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_MESSAGE_START_EVENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustAttributesType getStardustAttributes() {
+ return stardustAttributes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustAttributes(StardustAttributesType newStardustAttributes, NotificationChain msgs) {
+ StardustAttributesType oldStardustAttributes = stardustAttributes;
+ stardustAttributes = newStardustAttributes;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES, oldStardustAttributes, newStardustAttributes);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustAttributes(StardustAttributesType newStardustAttributes) {
+ if (newStardustAttributes != stardustAttributes) {
+ NotificationChain msgs = null;
+ if (stardustAttributes != null)
+ msgs = ((InternalEObject)stardustAttributes).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES, null, msgs);
+ if (newStardustAttributes != null)
+ msgs = ((InternalEObject)newStardustAttributes).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES, null, msgs);
+ msgs = basicSetStardustAttributes(newStardustAttributes, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES, newStardustAttributes, newStardustAttributes));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AccessPointType> getAccessPoint() {
+ if (accessPoint == null) {
+ accessPoint = new EObjectContainmentEList<AccessPointType>(AccessPointType.class, this, SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT);
+ }
+ return accessPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ParameterMappingType> getParameterMapping() {
+ if (parameterMapping == null) {
+ parameterMapping = new EObjectContainmentEList<ParameterMappingType>(ParameterMappingType.class, this, SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING);
+ }
+ return parameterMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return basicSetStardustAttributes(null, msgs);
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT:
+ return ((InternalEList<?>)getAccessPoint()).basicRemove(otherEnd, msgs);
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING:
+ return ((InternalEList<?>)getParameterMapping()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return getStardustAttributes();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT:
+ return getAccessPoint();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING:
+ return getParameterMapping();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT:
+ getAccessPoint().clear();
+ getAccessPoint().addAll((Collection<? extends AccessPointType>)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING:
+ getParameterMapping().clear();
+ getParameterMapping().addAll((Collection<? extends ParameterMappingType>)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__TYPE:
+ setType((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)null);
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT:
+ getAccessPoint().clear();
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING:
+ getParameterMapping().clear();
+ return;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return stardustAttributes != null;
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__ACCESS_POINT:
+ return accessPoint != null && !accessPoint.isEmpty();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__PARAMETER_MAPPING:
+ return parameterMapping != null && !parameterMapping.isEmpty();
+ case SdbpmnPackage.STARDUST_MESSAGE_START_EVENT_TYPE__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StardustMessageStartEventTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustModelTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustModelTypeImpl.java
new file mode 100644
index 0000000..88822f7
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustModelTypeImpl.java
@@ -0,0 +1,475 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import java.math.BigInteger;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustModelType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Model Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getCarnotVersion <em>Carnot Version</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getCreated <em>Created</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getModelOID <em>Model OID</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getOid <em>Oid</em>}</li>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustModelTypeImpl#getVendor <em>Vendor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustModelTypeImpl extends EObjectImpl implements StardustModelType {
+ /**
+ * The default value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected static final String AUTHOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected String author = AUTHOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCarnotVersion() <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCarnotVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String CARNOT_VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCarnotVersion() <em>Carnot Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCarnotVersion()
+ * @generated
+ * @ordered
+ */
+ protected String carnotVersion = CARNOT_VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreated() <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreated()
+ * @generated
+ * @ordered
+ */
+ protected static final XMLGregorianCalendar CREATED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreated() <em>Created</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreated()
+ * @generated
+ * @ordered
+ */
+ protected XMLGregorianCalendar created = CREATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getModelOID() <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelOID()
+ * @generated
+ * @ordered
+ */
+ protected static final BigInteger MODEL_OID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getModelOID() <em>Model OID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelOID()
+ * @generated
+ * @ordered
+ */
+ protected BigInteger modelOID = MODEL_OID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOid() <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOid()
+ * @generated
+ * @ordered
+ */
+ protected static final long OID_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getOid() <em>Oid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOid()
+ * @generated
+ * @ordered
+ */
+ protected long oid = OID_EDEFAULT;
+
+ /**
+ * This is true if the Oid attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean oidESet;
+
+ /**
+ * The default value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVendor()
+ * @generated
+ * @ordered
+ */
+ protected static final String VENDOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVendor() <em>Vendor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVendor()
+ * @generated
+ * @ordered
+ */
+ protected String vendor = VENDOR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustModelTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_MODEL_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAuthor() {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(String newAuthor) {
+ String oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__AUTHOR, oldAuthor, author));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCarnotVersion() {
+ return carnotVersion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCarnotVersion(String newCarnotVersion) {
+ String oldCarnotVersion = carnotVersion;
+ carnotVersion = newCarnotVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__CARNOT_VERSION, oldCarnotVersion, carnotVersion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XMLGregorianCalendar getCreated() {
+ return created;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreated(XMLGregorianCalendar newCreated) {
+ XMLGregorianCalendar oldCreated = created;
+ created = newCreated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__CREATED, oldCreated, created));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigInteger getModelOID() {
+ return modelOID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModelOID(BigInteger newModelOID) {
+ BigInteger oldModelOID = modelOID;
+ modelOID = newModelOID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__MODEL_OID, oldModelOID, modelOID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getOid() {
+ return oid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOid(long newOid) {
+ long oldOid = oid;
+ oid = newOid;
+ boolean oldOidESet = oidESet;
+ oidESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__OID, oldOid, oid, !oldOidESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOid() {
+ long oldOid = oid;
+ boolean oldOidESet = oidESet;
+ oid = OID_EDEFAULT;
+ oidESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SdbpmnPackage.STARDUST_MODEL_TYPE__OID, oldOid, OID_EDEFAULT, oldOidESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOid() {
+ return oidESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVendor() {
+ return vendor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVendor(String newVendor) {
+ String oldVendor = vendor;
+ vendor = newVendor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_MODEL_TYPE__VENDOR, oldVendor, vendor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__AUTHOR:
+ return getAuthor();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CARNOT_VERSION:
+ return getCarnotVersion();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CREATED:
+ return getCreated();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__MODEL_OID:
+ return getModelOID();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__OID:
+ return getOid();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__VENDOR:
+ return getVendor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__AUTHOR:
+ setAuthor((String)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CARNOT_VERSION:
+ setCarnotVersion((String)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CREATED:
+ setCreated((XMLGregorianCalendar)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__MODEL_OID:
+ setModelOID((BigInteger)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__OID:
+ setOid((Long)newValue);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__VENDOR:
+ setVendor((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__AUTHOR:
+ setAuthor(AUTHOR_EDEFAULT);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CARNOT_VERSION:
+ setCarnotVersion(CARNOT_VERSION_EDEFAULT);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CREATED:
+ setCreated(CREATED_EDEFAULT);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__MODEL_OID:
+ setModelOID(MODEL_OID_EDEFAULT);
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__OID:
+ unsetOid();
+ return;
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__VENDOR:
+ setVendor(VENDOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__AUTHOR:
+ return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT.equals(author);
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CARNOT_VERSION:
+ return CARNOT_VERSION_EDEFAULT == null ? carnotVersion != null : !CARNOT_VERSION_EDEFAULT.equals(carnotVersion);
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__CREATED:
+ return CREATED_EDEFAULT == null ? created != null : !CREATED_EDEFAULT.equals(created);
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__MODEL_OID:
+ return MODEL_OID_EDEFAULT == null ? modelOID != null : !MODEL_OID_EDEFAULT.equals(modelOID);
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__OID:
+ return isSetOid();
+ case SdbpmnPackage.STARDUST_MODEL_TYPE__VENDOR:
+ return VENDOR_EDEFAULT == null ? vendor != null : !VENDOR_EDEFAULT.equals(vendor);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (author: ");
+ result.append(author);
+ result.append(", carnotVersion: ");
+ result.append(carnotVersion);
+ result.append(", created: ");
+ result.append(created);
+ result.append(", modelOID: ");
+ result.append(modelOID);
+ result.append(", oid: ");
+ if (oidESet) result.append(oid); else result.append("<unset>");
+ result.append(", vendor: ");
+ result.append(vendor);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StardustModelTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSeqenceFlowTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSeqenceFlowTypeImpl.java
new file mode 100644
index 0000000..f61f0b1
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSeqenceFlowTypeImpl.java
@@ -0,0 +1,201 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSeqenceFlowType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Seqence Flow Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSeqenceFlowTypeImpl#isForkOnTraversal <em>Fork On Traversal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustSeqenceFlowTypeImpl extends EObjectImpl implements StardustSeqenceFlowType {
+ /**
+ * The default value of the '{@link #isForkOnTraversal() <em>Fork On Traversal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForkOnTraversal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FORK_ON_TRAVERSAL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isForkOnTraversal() <em>Fork On Traversal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForkOnTraversal()
+ * @generated
+ * @ordered
+ */
+ protected boolean forkOnTraversal = FORK_ON_TRAVERSAL_EDEFAULT;
+
+ /**
+ * This is true if the Fork On Traversal attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean forkOnTraversalESet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustSeqenceFlowTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_SEQENCE_FLOW_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isForkOnTraversal() {
+ return forkOnTraversal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setForkOnTraversal(boolean newForkOnTraversal) {
+ boolean oldForkOnTraversal = forkOnTraversal;
+ forkOnTraversal = newForkOnTraversal;
+ boolean oldForkOnTraversalESet = forkOnTraversalESet;
+ forkOnTraversalESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL, oldForkOnTraversal, forkOnTraversal, !oldForkOnTraversalESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetForkOnTraversal() {
+ boolean oldForkOnTraversal = forkOnTraversal;
+ boolean oldForkOnTraversalESet = forkOnTraversalESet;
+ forkOnTraversal = FORK_ON_TRAVERSAL_EDEFAULT;
+ forkOnTraversalESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL, oldForkOnTraversal, FORK_ON_TRAVERSAL_EDEFAULT, oldForkOnTraversalESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetForkOnTraversal() {
+ return forkOnTraversalESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL:
+ return isForkOnTraversal();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL:
+ setForkOnTraversal((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL:
+ unsetForkOnTraversal();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SEQENCE_FLOW_TYPE__FORK_ON_TRAVERSAL:
+ return isSetForkOnTraversal();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (forkOnTraversal: ");
+ if (forkOnTraversalESet) result.append(forkOnTraversal); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //StardustSeqenceFlowTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustServiceTaskTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustServiceTaskTypeImpl.java
new file mode 100644
index 0000000..a299984
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustServiceTaskTypeImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustServiceTaskType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Service Task Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustServiceTaskTypeImpl#getApplication <em>Application</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustServiceTaskTypeImpl extends TStardustActivityImpl implements StardustServiceTaskType {
+ /**
+ * The default value of the '{@link #getApplication() <em>Application</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplication()
+ * @generated
+ * @ordered
+ */
+ protected static final String APPLICATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getApplication() <em>Application</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getApplication()
+ * @generated
+ * @ordered
+ */
+ protected String application = APPLICATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustServiceTaskTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_SERVICE_TASK_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getApplication() {
+ return application;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setApplication(String newApplication) {
+ String oldApplication = application;
+ application = newApplication;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE__APPLICATION, oldApplication, application));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE__APPLICATION:
+ return getApplication();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE__APPLICATION:
+ setApplication((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE__APPLICATION:
+ setApplication(APPLICATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SERVICE_TASK_TYPE__APPLICATION:
+ return APPLICATION_EDEFAULT == null ? application != null : !APPLICATION_EDEFAULT.equals(application);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (application: ");
+ result.append(application);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StardustServiceTaskTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustStartEventTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustStartEventTypeImpl.java
new file mode 100644
index 0000000..e0139e5
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustStartEventTypeImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustStartEventType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustStartEventTypeImpl#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustStartEventTypeImpl extends EObjectImpl implements StardustStartEventType {
+ /**
+ * The cached value of the '{@link #getStardustAttributes() <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStardustAttributes()
+ * @generated
+ * @ordered
+ */
+ protected StardustAttributesType stardustAttributes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustStartEventTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_START_EVENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustAttributesType getStardustAttributes() {
+ return stardustAttributes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustAttributes(StardustAttributesType newStardustAttributes, NotificationChain msgs) {
+ StardustAttributesType oldStardustAttributes = stardustAttributes;
+ stardustAttributes = newStardustAttributes;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES, oldStardustAttributes, newStardustAttributes);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustAttributes(StardustAttributesType newStardustAttributes) {
+ if (newStardustAttributes != stardustAttributes) {
+ NotificationChain msgs = null;
+ if (stardustAttributes != null)
+ msgs = ((InternalEObject)stardustAttributes).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES, null, msgs);
+ if (newStardustAttributes != null)
+ msgs = ((InternalEObject)newStardustAttributes).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES, null, msgs);
+ msgs = basicSetStardustAttributes(newStardustAttributes, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES, newStardustAttributes, newStardustAttributes));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return basicSetStardustAttributes(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return getStardustAttributes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ setStardustAttributes((StardustAttributesType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_START_EVENT_TYPE__STARDUST_ATTRIBUTES:
+ return stardustAttributes != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StardustStartEventTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSubprocessTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSubprocessTypeImpl.java
new file mode 100644
index 0000000..189ab73
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustSubprocessTypeImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustSubprocessType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Subprocess Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustSubprocessTypeImpl#getImplementationProcess <em>Implementation Process</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustSubprocessTypeImpl extends TStardustActivityImpl implements StardustSubprocessType {
+ /**
+ * The default value of the '{@link #getImplementationProcess() <em>Implementation Process</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImplementationProcess()
+ * @generated
+ * @ordered
+ */
+ protected static final String IMPLEMENTATION_PROCESS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getImplementationProcess() <em>Implementation Process</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImplementationProcess()
+ * @generated
+ * @ordered
+ */
+ protected String implementationProcess = IMPLEMENTATION_PROCESS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustSubprocessTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_SUBPROCESS_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getImplementationProcess() {
+ return implementationProcess;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplementationProcess(String newImplementationProcess) {
+ String oldImplementationProcess = implementationProcess;
+ implementationProcess = newImplementationProcess;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS, oldImplementationProcess, implementationProcess));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS:
+ return getImplementationProcess();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS:
+ setImplementationProcess((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS:
+ setImplementationProcess(IMPLEMENTATION_PROCESS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SdbpmnPackage.STARDUST_SUBPROCESS_TYPE__IMPLEMENTATION_PROCESS:
+ return IMPLEMENTATION_PROCESS_EDEFAULT == null ? implementationProcess != null : !IMPLEMENTATION_PROCESS_EDEFAULT.equals(implementationProcess);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (implementationProcess: ");
+ result.append(implementationProcess);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StardustSubprocessTypeImpl
diff --git a/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustTimerStartEventTypeImpl.java b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustTimerStartEventTypeImpl.java
new file mode 100644
index 0000000..fa75826
--- /dev/null
+++ b/model/org.eclipse.stardust.model.bpmn2/src/main/java/org/eclipse/stardust/model/bpmn2/sdbpmn/impl/StardustTimerStartEventTypeImpl.java
@@ -0,0 +1,180 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stardust.model.bpmn2.sdbpmn.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.stardust.model.bpmn2.sdbpmn.SdbpmnPackage;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustAttributesType;
+import org.eclipse.stardust.model.bpmn2.sdbpmn.StardustTimerStartEventType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stardust Timer Start Event Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stardust.model.bpmn2.sdbpmn.impl.StardustTimerStartEventTypeImpl#getStardustAttributes <em>Stardust Attributes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StardustTimerStartEventTypeImpl extends EObjectImpl implements StardustTimerStartEventType {
+ /**
+ * The cached value of the '{@link #getStardustAttributes() <em>Stardust Attributes</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStardustAttributes()
+ * @generated
+ * @ordered
+ */
+ protected StardustAttributesType stardustAttributes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StardustTimerStartEventTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SdbpmnPackage.Literals.STARDUST_TIMER_START_EVENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StardustAttributesType getStardustAttributes() {
+ return stardustAttributes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStardustAttributes(StardustAttributesType newStardustAttributes, NotificationChain msgs) {
+ StardustAttributesType oldStardustAttributes = stardustAttributes;
+ stardustAttributes = newStardustAttributes;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SdbpmnPackage.STARDUST_TIMER_START_EVENT_TYPE__STARDUST_ATTRIBUTES, oldStardustAttributes, newStardustAttributes);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStardustAttributes(StardustAttributesType newStardustAttributes) {
+ if (newStardustAttributes != stardustAttributes) {
+ NotificationChain msgs = null;
+ if (stardustAttributes != null)
+ msgs = ((InternalEObject)stardustAttributes).eInverseRemove(this, EOPPOSITE_FE