summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Wouters2014-04-04 10:08:34 (EDT)
committerLaurent Wouters2014-04-04 10:08:34 (EDT)
commit7ab641ed1c9dd82fbc36fa6128261c45a785024b (patch)
treea654b14c486ff97c2e9cf7a9b679cd05b4605945
parentb20dc903acbd2643ad591a0186fde4a0bf384e48 (diff)
downloadorg.eclipse.papyrus-7ab641ed1c9dd82fbc36fa6128261c45a785024b.zip
org.eclipse.papyrus-7ab641ed1c9dd82fbc36fa6128261c45a785024b.tar.gz
org.eclipse.papyrus-7ab641ed1c9dd82fbc36fa6128261c45a785024b.tar.bz2
[clean] Retiring org.eclipse.papyrus.conversion.di2last/org.eclipse.papyrus.conversion.di2
Signed-off-by: Laurent Wouters <laurent.wouters@cea.fr>
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/.classpath8
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/.project33
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/META-INF/MANIFEST.MF20
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/build.properties22
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/customsrc/org/eclipse/papyrus/conversion/di2/DiConstants.java33
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/OLDdi2.genmodel115
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/UML.ecore10032
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/di2-master.ecore148
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/di2.ecore172
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/di2.genmodel125
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/di2withoutUMLEcore.ecore117
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/model/note.txt132
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/plugin.properties13
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/plugin.xml20
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/CoreSemanticModelBridge.java19
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Di2Factory.java205
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Di2Package.java4337
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Diagram.java187
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/DiagramElement.java489
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/DiagramLink.java144
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Ellipse.java195
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/GraphConnector.java115
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/GraphEdge.java106
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/GraphElement.java150
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/GraphNode.java55
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/GraphicPrimitive.java19
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Image.java81
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/LeafElement.java19
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/PapyrusKeyEnumeration.java182
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Polilyne.java63
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Property.java83
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Reference.java86
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/SemanticModelBridge.java87
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/SimpleSemanticModelElement.java55
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/TextElement.java53
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/Uml1SemanticModelBridge.java57
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/CoreSemanticModelBridgeImpl.java43
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/Di2FactoryImpl.java508
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/Di2PackageImpl.java1436
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/DiagramElementImpl.java1048
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/DiagramImpl.java466
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/DiagramLinkImpl.java356
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/EllipseImpl.java445
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/GraphConnectorImpl.java328
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/GraphEdgeImpl.java278
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/GraphElementImpl.java401
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/GraphNodeImpl.java169
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/GraphicPrimitiveImpl.java43
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/ImageImpl.java222
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/LeafElementImpl.java43
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/PolilyneImpl.java191
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/PropertyImpl.java222
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/ReferenceImpl.java238
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/SemanticModelBridgeImpl.java236
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/SimpleSemanticModelElementImpl.java170
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/TextElementImpl.java167
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/impl/Uml1SemanticModelBridgeImpl.java165
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/util/Di2AdapterFactory.java481
-rw-r--r--deprecated/org.eclipse.papyrus.conversion.di2/src/org/eclipse/papyrus/conversion/di2/util/Di2Switch.java574
59 files changed, 0 insertions, 26007 deletions
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/.classpath b/deprecated/org.eclipse.papyrus.conversion.di2/.classpath
deleted file mode 100644
index aad3b0b..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="customsrc"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/.project b/deprecated/org.eclipse.papyrus.conversion.di2/.project
deleted file mode 100644
index fd7cb50..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.papyrus.conversion.di2</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.ibm.etools.common.migration.MigrationBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/META-INF/MANIFEST.MF b/deprecated/org.eclipse.papyrus.conversion.di2/META-INF/MANIFEST.MF
deleted file mode 100644
index 8443b2d..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.papyrus.conversion.di2;singleton:=true
-Bundle-Version: 0.8.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %pluginProvider
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Export-Package: org.eclipse.papyrus.conversion.di2,
- org.eclipse.papyrus.conversion.di2.impl,
- org.eclipse.papyrus.conversion.di2.util
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.eclipse.uml2.types;visibility:=reexport,
- org.eclipse.gef,
- org.eclipse.uml2.uml
-Bundle-ActivationPolicy: lazy
-Eclipse-LazyStart: true
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/build.properties b/deprecated/org.eclipse.papyrus.conversion.di2/build.properties
deleted file mode 100644
index 9945044..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# <copyright>
-# </copyright>
-#
-# $Id$
-
-bin.includes = .,\
- model/,\
- META-INF/,\
- plugin.xml,\
- plugin.properties
-jars.compile.order = .
-source.. = src/,\
- customsrc/
-output.. = bin/
-src.includes = src/,\
- plugin.xml,\
- plugin.properties,\
- model/,\
- build.properties,\
- META-INF/,\
- .project,\
- .classpath
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/customsrc/org/eclipse/papyrus/conversion/di2/DiConstants.java b/deprecated/org.eclipse.papyrus.conversion.di2/customsrc/org/eclipse/papyrus/conversion/di2/DiConstants.java
deleted file mode 100644
index c48f281..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/customsrc/org/eclipse/papyrus/conversion/di2/DiConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.papyrus.conversion.di2;
-
-/** constant for DI2 **/
-public interface DiConstants {
-
- /** constant for Type diagram **/
- public final String CLASS_DIAGRAM = "ClassDiagram";
-
- public final String COMPOSITE_STRUCTURE_DIAGRAM = "CompositeStructureDiagram";
-
- public final String COMPONENT_DIAGRAM = "ComponentDiagram";
-
- public final String DEPLOYMENT_DIAGRAM = "DeploymentDiagram";
-
- public final String OBJECT_DIAGRAM = "ObjectDiagram";
-
- public final String PACKAGE_DIAGRAM = "PackageDiagram";
-
- public final String ACTIVITY_DIAGRAM = "ActivityDiagram";
-
- public final String SEQUENCE_DIAGRAM = "SequenceDiagram";
-
- public final String COMMUNICATION_DIAGRAM = "CommunicationDiagram";
-
- public final String INTERACTION_OVERVIEW_DIAGRAM = "InteractionOverviewDiagram";
-
- public final String TIMING_DIAGRAM = "TimingDiagram";
-
- public final String USE_CASE_DIAGRAM = "UseCaseDiagram";
-
- public final String STATE_MACHINE_DIAGRAM = "StateMachineDiagram";
-
-}
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/model/OLDdi2.genmodel b/deprecated/org.eclipse.papyrus.conversion.di2/model/OLDdi2.genmodel
deleted file mode 100644
index c0b6c84..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/model/OLDdi2.genmodel
+++ /dev/null
@@ -1,115 +0,0 @@
-<?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="/org.eclipse.mddi.accord.visualprofiledesigntool.diagraminterchange2/src"
- modelPluginID="org.eclipse.mddi.accord.visualprofiledesigntool.diagraminterchange2"
- modelName="Di2" importerID="org.eclipse.emf.importer.ecore" usedGenPackages="../../../plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml">
- <foreignModel>di2.ecore</foreignModel>
- <genPackages prefix="Di2" basePackage="org.eclipse.mddi.accord.visualprofiledesigntool.diagraminterchange2"
- disposableProviderFactory="true" ecorePackage="di2.ecore#/">
- <genEnums ecoreEnum="di2.ecore#//TypeDiagram">
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/ClassDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/CompositeStructureDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/ComponentDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/DeploymentDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/ObjectDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/PackageDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/ActivityDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/SequenceDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/CommunicationDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/InteractionOverviewDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/TimingDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/UseCaseDiagram"/>
- <genEnumLiterals ecoreEnumLiteral="di2.ecore#//TypeDiagram/StateMachineDiagram"/>
- </genEnums>
- <genDataTypes ecoreDataType="di2.ecore#//Point"/>
- <genDataTypes ecoreDataType="di2.ecore#//Dimension"/>
- <genDataTypes ecoreDataType="di2.ecore#//Double"/>
- <genDataTypes ecoreDataType="di2.ecore#//RGB"/>
- <genClasses ecoreClass="di2.ecore#//DiagramElement">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference di2.ecore#//DiagramElement/property"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/isVisble"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//DiagramElement/reference"/>
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference di2.ecore#//DiagramElement/container"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/fontFamily"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/fontSize"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/lineStyle"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/lineThickness"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/fontColor"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/foregroundColor"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/backgroundColor"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/borderColor"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramElement/translucent"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//GraphElement">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference di2.ecore#//GraphElement/contained"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference di2.ecore#//GraphElement/link"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference di2.ecore#//GraphElement/semanticModel"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//GraphElement/position"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//GraphElement/graphEdgeSource"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//GraphElement/graphEdgeTarget"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Reference">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Reference/isIndividualRepresentation"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//Reference/referenced"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Property">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Property/key"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Property/value"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//GraphEdge">
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//GraphEdge/anchorSource"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//GraphEdge/anchorTarget"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//GraphEdge/waypoints"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//GraphNode">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//GraphNode/size"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//DiagramLink">
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//DiagramLink/diagram"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramLink/zoom"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//DiagramLink/viewport"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//DiagramLink/graphElement"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Diagram">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference di2.ecore#//Diagram/owner"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Diagram/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Diagram/zoom"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Diagram/viewport"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//Diagram/diagramLink"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Diagram/type"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//SemanticModelBridge">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//SemanticModelBridge/presentation"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//SemanticModelBridge/graphElement"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//SimpleSemanticModelElement">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//SimpleSemanticModelElement/typeinfo"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Uml1SemanticModelBridge">
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference di2.ecore#//Uml1SemanticModelBridge/element"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//CoreSemanticModelBridge"/>
- <genClasses ecoreClass="di2.ecore#//LeafElement"/>
- <genClasses ecoreClass="di2.ecore#//TextElement">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//TextElement/text"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Image">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Image/uri"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Image/mimeType"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//GraphicPrimitive"/>
- <genClasses ecoreClass="di2.ecore#//Polilyne">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Polilyne/waypoints"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Polilyne/closed"/>
- </genClasses>
- <genClasses ecoreClass="di2.ecore#//Ellipse">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/center"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/radiusX"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/radiusY"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/rotation"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/startAngle"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute di2.ecore#//Ellipse/endAngle"/>
- </genClasses>
- </genPackages>
-</genmodel:GenModel>
diff --git a/deprecated/org.eclipse.papyrus.conversion.di2/model/UML.ecore b/deprecated/org.eclipse.papyrus.conversion.di2/model/UML.ecore
deleted file mode 100644
index 7206ff8..0000000
--- a/deprecated/org.eclipse.papyrus.conversion.di2/model/UML.ecore
+++ /dev/null
@@ -1,10032 +0,0 @@
-<?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="uml"
- nsURI="http://www.eclipse.org/uml2/2.0.0/UML" nsPrefix="uml">
- <eClassifiers xsi:type="ecore:EDataType" name="Integer" instanceClassName="int">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An instance of Integer is an element in the (infinite) set of integers (...-2, -1, 0, 1, 2...). It is used for integer attributes and integer expressions in the metamodel."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="Boolean" instanceClassName="boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Boolean is an instance of PrimitiveType. In the metamodel, Boolean defines an enumeration that denotes a logical condition. Its enumeration literals are:&#xD;&#xA; - true = The Boolean condition is satisfied.&#xD;&#xA; - false = The Boolean condition is not satisfied.&#xD;&#xA;&#xD;&#xA;It is used for Boolean attribute and Boolean expressions in the metamodel, such as OCL expression."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An instance of String defines a piece of text. The semantics of the string itself depends on its purpose, it can be a comment, computational language expression, OCL expression, etc. It is used for String attributes and String expressions in the metamodel."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EDataType" name="UnlimitedNatural" instanceClassName="int">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An instance of UnlimitedNatural is an element in the (infinite) set of naturals (0, 1, 2...). The value of infinity is shown using an asterisk ('*')."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements.&#xD;&#xA;A comment gives the ability to attach various remarks to elements. A comment carries no semantic force, but may contain information that is useful to a modeler. A comment can be owned by any element."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" eType="#//String"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a string that is the comment."/>
- </eAnnotations>
- <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
- <details key="kind" value="element"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" ordered="false"
- upperBound="-1" eType="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Element(s) being commented."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An element can own comments.&#xD;&#xA;Element is an abstract metaclass with no superclass. It is used as the common superclass for all metaclasses in the infrastructure library. Element has a derived composition association to itself to support the general capability for elements to own other elements.&#xD;&#xA; An element is a constituent of a model. An element can own comments."/>
- </eAnnotations>
- <eOperations name="not_own_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An element may not directly or indirectly own itself.&#xD;&#xA;not self.allOwnedElements()->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Elements that must be owned must have an owner.&#xD;&#xA;self.mustBeOwned() implies owner->notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="destroy" ordered="false" lowerBound="1"/>
- <eOperations name="hasKeyword" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="keyword" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getKeywords" ordered="false" upperBound="-1" eType="#//String"/>
- <eOperations name="addKeyword" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="keyword" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="removeKeyword" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="keyword" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getNearestPackage" ordered="false" eType="#//Package"/>
- <eOperations name="getModel" ordered="false" eType="#//Model"/>
- <eOperations name="isStereotypeApplicable" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="isStereotypeRequired" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="isStereotypeApplied" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="applyStereotype" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="unapplyStereotype" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="getApplicableStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype"/>
- <eOperations name="getApplicableStereotype" ordered="false" eType="#//Stereotype">
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getStereotypeApplications" ordered="false" upperBound="-1"
- eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
- <eOperations name="getStereotypeApplication" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="getRequiredStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype"/>
- <eOperations name="getRequiredStereotype" ordered="false" eType="#//Stereotype">
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getAppliedStereotypes" ordered="false" upperBound="-1" eType="#//Stereotype"/>
- <eOperations name="getAppliedStereotype" ordered="false" eType="#//Stereotype">
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getAppliedSubstereotypes" ordered="false" upperBound="-1" eType="#//Stereotype">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- </eOperations>
- <eOperations name="getAppliedSubstereotype" ordered="false" eType="#//Stereotype">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="hasValue" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- <eParameters name="propertyName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getValue" ordered="false" eType="ecore:EDataType ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- <eParameters name="propertyName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="setValue" ordered="false" lowerBound="1">
- <eParameters name="stereotype" ordered="false" lowerBound="1" eType="#//Stereotype"/>
- <eParameters name="propertyName" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="newValue" ordered="false" lowerBound="1" eType="ecore:EDataType ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
- </eOperations>
- <eOperations name="createEAnnotation" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">
- <eParameters name="source" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getRelationships" ordered="false" upperBound="-1" eType="#//Relationship"/>
- <eOperations name="getRelationships" ordered="false" upperBound="-1" eType="#//Relationship">
- <eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- </eOperations>
- <eOperations name="getSourceDirectedRelationships" ordered="false" upperBound="-1"
- eType="#//DirectedRelationship"/>
- <eOperations name="getSourceDirectedRelationships" ordered="false" upperBound="-1"
- eType="#//DirectedRelationship">
- <eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- </eOperations>
- <eOperations name="getTargetDirectedRelationships" ordered="false" upperBound="-1"
- eType="#//DirectedRelationship"/>
- <eOperations name="getTargetDirectedRelationships" ordered="false" upperBound="-1"
- eType="#//DirectedRelationship">
- <eParameters name="eClass" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- </eOperations>
- <eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xD;&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="mustBeOwned" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner. Subclasses of Element that do not require an owner must override this operation.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElement" ordered="false"
- upperBound="-1" eType="#//Element" changeable="false" transient="true" derived="true"
- eOpposite="#//Element/owner">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Elements owned by this element."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
- eType="#//Element" changeable="false" transient="true" derived="true" eOpposite="#//Element/ownedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Element that owns this element."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
- upperBound="-1" eType="#//Comment" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Comments owned by this element."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages. In addition a package can be merged with other packages.&#xD;&#xA;A package is a namespace for its members, and may contain other packages. Only packageable elements can be owned members of a package. By virtue of being a namespace, a package can import either individual members of other packages, or all the members of other packages.&#xD;&#xA;In addition a package can be merged with other packages.&#xD;&#xA;&#xD;&#xA;A Package can have one or more ProfileApplications to indicate which profiles have been applied. Because a profile is a package, it is possible to apply a profile not only to packages, but also to profiles.&#xD;&#xA;Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
- </contents>
- </eAnnotations>
- <eOperations name="elements_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If an element that is owned by a package has visibility, it is public or private.&#xD;&#xA;self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createOwnedClass" ordered="false" lowerBound="1" eType="#//Class">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="isAbstract" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="createOwnedEnumeration" ordered="false" lowerBound="1" eType="#//Enumeration">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="createOwnedPrimitiveType" ordered="false" lowerBound="1" eType="#//PrimitiveType">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="createOwnedInterface" ordered="false" lowerBound="1" eType="#//Interface">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="isProfileApplied" ordered="false" lowerBound="1" eType="#//Boolean">
- <eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile"/>
- </eOperations>
- <eOperations name="applyProfile" ordered="false" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile"/>
- </eOperations>
- <eOperations name="unapplyProfile" ordered="false" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile"/>
- </eOperations>
- <eOperations name="getAppliedProfiles" ordered="false" upperBound="-1" eType="#//Profile"/>
- <eOperations name="getAllAppliedProfiles" ordered="false" upperBound="-1" eType="#//Profile"/>
- <eOperations name="getAppliedProfile" ordered="false" eType="#//Profile">
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="getAppliedProfile" ordered="false" eType="#//Profile">
- <eParameters name="qualifiedName" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="recurse" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getAllProfileApplications" ordered="false" upperBound="-1"
- eType="#//ProfileApplication"/>
- <eOperations name="getProfileApplication" ordered="false" eType="#//ProfileApplication">
- <eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile"/>
- </eOperations>
- <eOperations name="getProfileApplication" ordered="false" eType="#//ProfileApplication">
- <eParameters name="profile" ordered="false" lowerBound="1" eType="#//Profile"/>
- <eParameters name="recurse" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="isModelLibrary" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eOperations name="visibleMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xD;&#xA;result = member->select( m | self.makesVisible(m))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="makesVisible" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.&#xD;&#xA;self.member->includes(el)&#xD;&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" ordered="false"
- upperBound="-1" eType="#//Type" volatile="true" transient="true" derived="true"
- eOpposite="#//Type/package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the packaged elements that are Types."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Package/packagedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
- upperBound="-1" eType="#//PackageMerge" containment="true" eOpposite="#//PackageMerge/receivingPackage">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the PackageMerges that are owned by this Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
- upperBound="-1" eType="#//PackageableElement" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the packageable elements that are owned by this Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
- upperBound="-1" eType="#//Package" volatile="true" transient="true" derived="true"
- eOpposite="#//Package/nestingPackage">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the packaged elements that are Packages."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Package/packagedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" ordered="false"
- eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/nestedPackage">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the owning package of a package.&#xD;&#xA;References the Package that owns this Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="profileApplication" ordered="false"
- upperBound="-1" eType="#//ProfileApplication" containment="true" eOpposite="#//ProfileApplication/applyingPackage">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
- eSuperTypes="#//NamedElement #//ParameterableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A packageable element indicates a named element that may be owned directly by a package.&#xD;&#xA;PackageableElements are extended to enable any such element to serve as a template parameter."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind"
- defaultValueLiteral="public">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
- </contents>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="NamedElement has a visibility attribute.&#xD;&#xA;A named element represents elements that may have a name. The name is used for identification of the named element within the namespace in which it is defined. A named element also has a qualified name that allows it to be unambiguously identified within a hierarchy of nested namespaces. NamedElement is an abstract metaclass.&#xD;&#xA;NamedElement specializes Kernel::NamedElement and adds a composition association to Expression."/>
- </eAnnotations>
- <eOperations name="has_no_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If there is no name, or one of the containing namespaces has no name, there is no qualified name.&#xD;&#xA;(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty())&#xD;&#xA; implies self.qualifiedName->isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="has_qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xD;&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xA; self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xD;&#xA;namespace->isEmpty() implies visibility->isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createDependency" ordered="false" lowerBound="1" eType="#//Dependency">
- <eParameters name="supplier" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eOperations name="getLabel" ordered="false" eType="#//String"/>
- <eOperations name="getLabel" ordered="false" eType="#//String">
- <eParameters name="localize" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getQualifiedName" ordered="false" lowerBound="1" eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.&#xD;&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA; self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA; Set{}&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="allNamespaces" upperBound="-1" eType="#//Namespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xD;&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isDistinguishableFrom" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isDistinguishableFrom() determines whether two NamedElements may logically co-exist within a Namespace. By default, two named elements are distinguishable if (a) they have unrelated types or (b) they have related types but different names.&#xD;&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
- </eOperations>
- <eOperations name="separator" ordered="false" lowerBound="1" eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xD;&#xA;result = '::'"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="allOwningPackages" ordered="false" upperBound="-1" eType="#//Package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allOwningPackages() returns all the directly or indirectly owning packages.&#xD;&#xA;result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="#//String"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The name of the NamedElement."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
- eType="#//VisibilityKind" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" ordered="false"
- eType="#//String" changeable="false" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="clientDependency" ordered="false"
- upperBound="-1" eType="#//Dependency" eOpposite="#//Dependency/client">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates the dependencies that reference the client."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" ordered="false"
- eType="#//Namespace" changeable="false" transient="true" derived="true" eOpposite="#//Namespace/ownedMember">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nameExpression" ordered="false"
- eType="#//StringExpression" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The string expression used to define the name of this named element."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="VisibilityKind is an enumeration of the following literal values:&#xD;&#xA; - public&#xD;&#xA; - private&#xD;&#xA; - protected&#xD;&#xA; - package"/>
- </eAnnotations>
- <eLiterals name="public">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A public element is visible to all elements that can access the contents of the namespace that owns it."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="private" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A private element is only visible inside the namespace that owns it."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="protected" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A protected element is visible to elements that have a generalization relationship to the namespace that owns it."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="package" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Dependency" eSuperTypes="#//PackageableElement #//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s)."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="supplier" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="client" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//NamedElement" eOpposite="#//NamedElement/clientDependency">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
- eSuperTypes="#//Relationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A relationship references one or more related elements. Relationship is an abstract metaclass."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the elements related by the Relationship."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A namespace has the ability to import either individial members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements.&#xD;&#xA;A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass.&#xD;&#xA;&#xD;&#xA;A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace.&#xD;&#xA;&#xD;&#xA;A namespace has the ability to import either individual members or all members of a package, thereby making it possible to refer to those named elements without qualification in the importing namespace. In the case of conflicts, it is necessary to use qualified names or aliases to disambiguate the referenced elements.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;A namespace is a named element that can own other named elements. Each named element may be owned by at most one namespace. A namespace provides a means for identifying named elements by name. Named elements can be identified by name in a namespace either by being directly owned by the namespace or by being introduced into the namespace by other means e.g. importing or inheriting. Namespace is an abstract metaclass."/>
- </eAnnotations>
- <eOperations name="members_distinguishable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All the members of a Namespace are distinguishable within it.&#xD;&#xA;membersAreDistinguishable()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createElementImport" ordered="false" lowerBound="1" eType="#//ElementImport">
- <eParameters name="element" ordered="false" lowerBound="1" eType="#//PackageableElement"/>
- <eParameters name="visibility" ordered="false" lowerBound="1" eType="#//VisibilityKind"/>
- </eOperations>
- <eOperations name="createPackageImport" ordered="false" lowerBound="1" eType="#//PackageImport">
- <eParameters name="package_" ordered="false" lowerBound="1" eType="#//Package"/>
- <eParameters name="visibility" ordered="false" lowerBound="1" eType="#//VisibilityKind"/>
- </eOperations>
- <eOperations name="getImportedElements" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
- <eOperations name="getImportedPackages" ordered="false" upperBound="-1" eType="#//Package"/>
- <eOperations name="getImportedMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The importedMember property is derived from the ElementImports and the PackageImports. References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.&#xD;&#xA;The importedMember property is derived from the ElementImports and the PackageImports.&#xD;&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query getNamesOfMember() is overridden to take account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xD;&#xA;The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.&#xD;&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA; if elementImports->notEmpty()&#xA; then elementImports->collect(el | el.getName())&#xA; else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA; endif&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eOperations name="membersAreDistinguishable" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xD;&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="importMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query importMembers() defines which of a set of PackageableElements are actually imported into the namespace. This excludes hidden ones, i.e., those which have names that conflict with names of owned members, and also excludes elements which would have the same name when imported.&#xD;&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
- </eOperations>
- <eOperations name="excludeCollisions" ordered="false" upperBound="-1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xD;&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
- upperBound="-1" eType="#//ElementImport" containment="true" eOpposite="#//ElementImport/importingNamespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the ElementImports owned by the Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
- upperBound="-1" eType="#//PackageImport" containment="true" eOpposite="#//PackageImport/importingNamespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the PackageImports owned by the Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/context">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
- upperBound="-1" eType="#//NamedElement" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property of Abstractions::Namespaces::Namespace.&#xD;&#xA;A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="importedMember" ordered="false"
- upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
- upperBound="-1" eType="#//NamedElement" changeable="false" transient="true"
- derived="true" eOpposite="#//NamedElement/namespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property of Abstractions::Namespaces::Namespace.&#xD;&#xA;A collection of NamedElements owned by the Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member #//Element/ownedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It is also possible to control whether the imported element can be further imported."/>
- </eAnnotations>
- <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xD;&#xA;self.visibility = #public or self.visibility = #private"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An importedElement has either public visibility or no visibility at all.&#xD;&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getName" ordered="false" lowerBound="1" eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.&#xD;&#xA;result = if self.alias->notEmpty() then&#xA; self.alias&#xA;else&#xA; self.importedElement.name&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
- lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is the same as that of the imported element. If the imported element does not have a visibility, it is possible to add visibility to the element import."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the name that should be added to the namespace of the importing Package in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used.&#xD;&#xA;Specifies the name that should be added to the namespace of the importing Pack-age in lieu of the name of the imported PackagableElement. The aliased name must not clash with any other member name in the importing Package. By default, no alias is used."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
- lowerBound="1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the PackageableElement whose name is to be added to a Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
- lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/elementImport">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace."/>
- </eAnnotations>
- <eOperations name="public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The visibility of a PackageImport is either public or private.&#xD;&#xA;self.visibility = #public or self.visibility = #private"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
- lowerBound="1" eType="#//VisibilityKind" defaultValueLiteral="public">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" ordered="false"
- lowerBound="1" eType="#//Package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the Package whose members are imported into a Namespace."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
- lowerBound="1" eType="#//Namespace" eOpposite="#//Namespace/packageImport">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the Namespace that imports the members from a Package."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used.&#xD;&#xA;Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to the element. Constraint contains an optional name, although they are commonly unnamed.&#xD;&#xA;Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; constraint) are predefined in UML, others may be user-defined. A user-defined Constraint is described using a specified language, whose syntax and interpretation is a tool responsibility. One predefined language for writing constraints is OCL. In some situations, a programming language such as Java may be appropriate for expressing a constraint. In other situations natural language may be used.&#xD;&#xA;Constraint is a condition (a Boolean expression) that restricts the extension of the associated element beyond what is imposed by the other language constructs applied to that element. Constraint contains an optional name, although they are commonly unnamed."/>
- </eAnnotations>
- <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A constraint cannot be applied to itself.&#xD;&#xA;not constrainedElement->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xD;&#xA;self.specification().booleanValue().isOclKindOf(Boolean)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Evaluating the value specification for a constraint must not have side effects.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_applied_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A constraint cannot be applied to itself.&#xD;&#xA;not constrainedElement->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
- eType="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied.&#xD;&#xA;&#xD;&#xA;A condition that must be true when evaluated in order for the constraint to be satisfied."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
- eType="#//Namespace" eOpposite="#//Namespace/ownedRule">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
- eSuperTypes="#//PackageableElement #//TypedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated. It adds a specialization to Constructs::TypedElement.&#xD;&#xA;ValueSpecification is an abstract metaclass used to identify a value or values in a model. It may reference an instance or it may be an expression denoting an instance or instances when evaluated.&#xD;&#xA;ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.&#xD;&#xA;&#xD;&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
- <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
- </contents>
- </eAnnotations>
- <eOperations name="isComputable" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="integerValue" ordered="false" lowerBound="1" eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xD;&#xA;result = Set{}"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="booleanValue" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xD;&#xA;result = Set{}"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="stringValue" ordered="false" lowerBound="1" eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xD;&#xA;result = Set{}"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="unlimitedValue" ordered="false" lowerBound="1" eType="#//UnlimitedNatural">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xD;&#xA;result = Set{}"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isNull" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A typed element is an element that has a type that serves as a constraint on the range of values the element can represent. Typed element is an abstract metaclass.&#xD;&#xA;A typed element is an element that has a type that serves as a constraint on the range of values the element can represent.&#xD;&#xA;Typed element is an abstract metaclass.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;The type of the TypedElement."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass."/>
- </eAnnotations>
- <eOperations name="createAssociation" ordered="false" lowerBound="1" eType="#//Association">
- <eParameters name="end1IsNavigable" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eParameters name="end1Aggregation" ordered="false" lowerBound="1" eType="#//AggregationKind"/>
- <eParameters name="end1Name" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="end1Lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="end1Upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- <eParameters name="end1Type" ordered="false" lowerBound="1" eType="#//Type"/>
- <eParameters name="end2IsNavigable" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eParameters name="end2Aggregation" ordered="false" lowerBound="1" eType="#//AggregationKind"/>
- <eParameters name="end2Name" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="end2Lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="end2Upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eOperations name="getAssociations" ordered="false" upperBound="-1" eType="#//Association"/>
- <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query conformsTo() gives true for a type that conforms to another. By default, two types do not conform to each other. This query is intended to be redefined for specific conformance situations.&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="other" ordered="false" lowerBound="1" eType="#//Type"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
- eType="#//Package" volatile="true" transient="true" derived="true" eOpposite="#//Package/ownedType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the owning package of a package.&#xD;&#xA;Specifies the owning package of this classifier, if any."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//Classifier #//Relationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An association specifies a semantic relationship that can occur between typed instances. It has at least two ends represented by properties, each of which is connected to the type of the end. More than one end of an association may have the same type.&#xD;&#xA;&#xD;&#xA;An end property of an association that is owned by an end class or that is a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends."/>
- </eAnnotations>
- <eOperations name="specialized_end_number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An association specializing another association has the same number of ends as the other association.&#xD;&#xA;self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only binary associations can be aggregations.&#xD;&#xA;self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Association ends of associations with more than two ends must be owned by the association.&#xD;&#xA;if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="isBinary" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eOperations name="getEndTypes" upperBound="-1" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="endType is derived from the types of the member ends.&#xD;&#xA;result = self.memberEnd->collect(e | e.type)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
- eType="#//Property" containment="true" eOpposite="#//Property/owningAssociation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ends that are owned by the association itself. This is an ordered association.&#xD;&#xA;The ends that are owned by the association itself."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="memberEnd" lowerBound="2"
- upperBound="-1" eType="#//Property" eOpposite="#//Property/association">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association.&#xD;&#xA;Each end represents participation of instances of the classifier connected to the end in links of the association."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether the association is derived from other model elements such as other associations or constraints."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="endType" lowerBound="1"
- upperBound="-1" eType="#//Type" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the classifiers that are used as types of the ends of the association."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
- upperBound="-1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The navigable ends that are owned by the association itself."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Association/ownedEnd"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A classifier is a type. It can specify a generalization hierarchy by referencing its general classifiers. A classifier is also a namespace whose members can include features. Classifier is an abstract metaclass.&#xD;&#xA;Classifier is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.&#xD;&#xA;Extends a classifier with the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a UseCase.&#xD;&#xA;A classifier is a namespace whose members can include features. Classifier is an abstract metaclass.&#xD;&#xA;A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers.&#xD;&#xA;A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers.&#xD;&#xA;&#xD;&#xA;A classifier can be parameterized, exposed as a formal template parameter, and specified as an actual parameter in a binding of a template."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isTemplate" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xD;&#xA;result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TemplateableElement/isTemplate"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="ownedTemplateSignature" ordered="false"
- eType="#//TemplateSignature" containment="true" eOpposite="#//RedefinableTemplateSignature/classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TemplateableElement/ownedTemplateSignature"/>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
- eType="#//TemplateParameter" eOpposite="#//ClassifierTemplateParameter/%duplicates%/parameteredElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
- </contents>
- </eAnnotations>
- <eOperations name="no_cycles_in_generalization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xD;&#xA;not self.allParents()->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="generalization_hierarchies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xD;&#xA;not self.allParents()->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xD;&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getAllAttributes" ordered="false" upperBound="-1" eType="#//Property"/>
- <eOperations name="getOperations" ordered="false" upperBound="-1" eType="#//Operation"/>
- <eOperations name="getAllOperations" ordered="false" upperBound="-1" eType="#//Operation"/>
- <eOperations name="getOperation" ordered="false" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- </eOperations>
- <eOperations name="getOperation" ordered="false" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- <eParameters name="ignoreCase" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getUsedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
- <eOperations name="getAllUsedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
- <eOperations name="getGenerals" ordered="false" upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xD;&#xA;result = self.parents()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getInheritedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xD;&#xA;result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="allFeatures" ordered="false" upperBound="-1" eType="#//Feature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.&#xD;&#xA;result = member->select(oclIsKindOf(Feature))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="parents" ordered="false" upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xD;&#xA;result = generalization.general"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="inheritableMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query inheritableMembers() gives all of the members of a classifier that may be inherited in one of its descendants, subject to whatever visibility restrictions apply.&#xD;&#xA;c.allParents()->includes(self)&#xD;&#xA;result = member->select(m | c.hasVisibilityOf(m))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="hasVisibilityOf" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query hasVisibilityOf() determines whether a named element is visible in the classifier. By default all are visible. It is only called when the argument is something owned by a parent.&#xD;&#xA;self.allParents()->collect(c | c.member)->includes(n)&#xD;&#xA;result = if (self.inheritedMember->includes(n)) then (n.visibility &lt;> #private) else true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query conformsTo() gives true for a classifier that defines a type that conforms to another. This is used, for example, in the specification of signature conformance for operations.&#xD;&#xA;result = (self=other) or (self.allParents()->includes(other))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Type/conformsTo"/>
- <eParameters name="other" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.&#xD;&#xA;result = inhs"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
- </eOperations>
- <eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query maySpecializeType() determines whether this classifier may have a generalization relationship to classifiers of the specified type. By default a classifier may specialize classifiers of the same or a more general type. It is intended to be redefined by classifiers that have different specialization constraints.&#xD;&#xA;result = self.oclIsKindOf(c.oclType)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="allParents" ordered="false" upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xD;&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
- upperBound="-1" eType="#//Generalization" containment="true" eOpposite="#//Generalization/specific">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="powertypeExtent" ordered="false"
- upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/powertype">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the GeneralizationSet of which the associated Classifier is a power type."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
- upperBound="-1" eType="#//Feature" changeable="false" transient="true" derived="true"
- eOpposite="#//Feature/featuringClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding association in Abstractions. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.&#xD;&#xA;Specifies each feature defined in the classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
- upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
- upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Classifiers that are redefined by this Classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
- upperBound="-1" eType="#//Classifier" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the general classifier in the Generalization relationship.&#xD;&#xA;Specifies the general Classifiers for this Classifier."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="substitution" ordered="false"
- upperBound="-1" eType="#//Substitution" containment="true" eOpposite="#//Substitution/substitutingClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the substitutions that are owned by this Classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" ordered="false"
- upperBound="-1" eType="#//Property" changeable="false" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="representation" ordered="false"
- eType="#//CollaborationUse">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a collaboration use which indicates the collaboration that represents this classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/collaborationUse"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationUse" ordered="false"
- upperBound="-1" eType="#//CollaborationUse" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the collaboration uses owned by the classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedUseCase" ordered="false"
- upperBound="-1" eType="#//UseCase" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use cases owned by this classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
- upperBound="-1" eType="#//UseCase" eOpposite="#//UseCase/subject">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of use cases for which this Classifier is the subject."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
- eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A redefinable element is an element that, when defined in the context of a classifier, can be redefined more specifically or differently in the context of another classifier that specializes (directly or indirectly) the context classifier. &#xD;&#xA;A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass."/>
- </eAnnotations>
- <eOperations name="redefinition_context_valid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="At least one of the redefinition contexts of the redefining element must be a specialization of at least one of the redefinition contexts for each redefined element.&#xD;&#xA;self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A redefining element must be consistent with each redefined element.&#xD;&#xA;self.redefinedElement->forAll(re | re.isConsistentWith(self))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableElements in a context in which redefinition is possible, whether redefinition would be logically consistent. By default, this is false; this operation must be overridden for subclasses of RedefinableElement to define the consistency conditions.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xA;&#xA;&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </eOperations>
- <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.&#xD;&#xA;result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
- upperBound="-1" eType="#//RedefinableElement" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The redefinable element that is being redefined by this element."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
- upperBound="-1" eType="#//Classifier" changeable="false" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the contexts that this element may be redefined from."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
- eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TemplateableElement may contain a template signature which specifies the formal template parameters. A TemplateableElement that contains a template signature is often referred to as a template. TemplateableElement may contain bindings to templates that describe how the templateable element is constructed by replacing the formal template parameters with actual parameters. A TemplateableElement containing bindings is oftenreferred to as a bound element."/>
- </eAnnotations>
- <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.&#xD;&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xD;&#xA;result = ownedTemplateSignature->notEmpty()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
- upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The optional bindings from this element to templates."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
- ordered="false" eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TemplateBinding is a directed relationship from a bound templateable element to the template signature of the target template. A TemplateBinding owns a set of template parameter substitutions."/>
- </eAnnotations>
- <eOperations name="parameter_substitution_formal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Each parameter substitution must refer to a formal template parameter of the target template signature.&#xD;&#xA;parameterSubstitution->forAll(b | template.parameter->includes(b.formal))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A binding contains at most one parameter substitution for each formal template parameter of the target template signature.&#xD;&#xA;template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() &lt;= 1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
- lowerBound="1" eType="#//TemplateSignature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template signature for the template that is the target of the binding."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
- ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
- eOpposite="#//TemplateParameterSubstitution/templateBinding">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameter substitutions owned by this template binding."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
- lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/templateBinding">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element that is bound by this binding."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding."/>
- </eAnnotations>
- <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Parameters must own the elements they parameter or those elements must be owned by the element being templated.&#xD;&#xA;templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
- upperBound="-1" eType="#//TemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
- eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateSignature/parameter"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
- lowerBound="1" eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedTemplateSignature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element that owns this template signature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TemplateParameter references a ParameterableElement which is exposed as a formal template parameter in the containing template."/>
- </eAnnotations>
- <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The default must be compatible with the formal template parameter.&#xD;&#xA;default->notEmpty() implies default->isCompatibleWith(parameteredElement)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
- lowerBound="1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template signature that owns this template parameter."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
- lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element exposed by this template parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
- ordered="false" eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningTemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element that is owned by this template parameter."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/parameteredElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
- eType="#//ParameterableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element that is the default for this formal template parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
- eType="#//ParameterableElement" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//TemplateParameter/default #//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
- eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ParameterableElement can be referenced by a TemplateParameter when defining a formal template parameter for a template. A ParameterableElement can be referenced by a TemplateParameterSubstitution when used as an actual parameter in a binding of a template.&#xD;&#xA;ParameterableElement is an abstract metaclass.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. Subclasses should override this operation to specify different compatibility constraints.&#xD;&#xA;result = p->oclIsKindOf(self.oclType)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
- </eOperations>
- <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xD;&#xA;result = templateParameter->notEmpty()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
- ordered="false" eType="#//TemplateParameter" eOpposite="#//TemplateParameter/ownedParameteredElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The formal template parameter that owns this element."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner #//ParameterableElement/templateParameter"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
- eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding."/>
- </eAnnotations>
- <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The actual parameter must be compatible with the formal template parameter, e.g. the actual parameter for a class template parameter must be a class.&#xD;&#xA;actual->forAll(a | a.isCompatibleWith(formal.parameteredElement))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
- lowerBound="1" eType="#//TemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//ParameterableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The elements that are the actual parameters for this substitution."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
- upperBound="-1" eType="#//ParameterableElement" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The actual parameters that are owned by this substitution."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//TemplateParameterSubstitution/actual #//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
- lowerBound="1" eType="#//TemplateBinding" eOpposite="#//TemplateBinding/parameterSubstitution">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The optional bindings from this element to templates."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.&#xD;&#xA;A generalization can be designated as being a member of a particular generalization set.&#xD;&#xA;&#xD;&#xA;A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.&#xD;&#xA;&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Every Generalization associated with a given GeneralizationSet must have the same general Classifier. That is, all Generalizations for a particular GeneralizationSet must have the same superclass.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubstitutable" ordered="false"
- eType="#//Boolean" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
- lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the general classifier in the Generalization relationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="generalizationSet" ordered="false"
- upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/generalization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates a set in which instances of Generalization is considered members."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="specific" ordered="false"
- lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/generalization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the specializing classifier in the Generalization relationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="GeneralizationSet" eSuperTypes="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Each Generalization is a binary relationship that relates a specific Classifier to a more general Classifier (i.e., from a class to its superclasses). Each GeneralizationSet defines a particular set of Generalization relationships that describe the way in which a general Classifier (or superclass) may be divided using specific subtypes. For example, a GeneralizationSet could define a partitioning of the class Person into two subclasses: Male Person and Female Person. Here, the GeneralizationSet would associate two instances of Generalization. Both instances would have Person as the general classifier, however one Generalization would involve Male Person as the specific Classifier and the other would involve Female Person as the specific classifier. In other words, the class Person can here be said to be partitioned into two subclasses: Male Person and Female Person. Person could also be divided into North American Person, Asian Person, European Person, or something else. This collection of subsets would define a different GeneralizationSet that would associate with three other Generalization relationships. All three would have Person as the general Classifier; only the specific classifiers would differ: i.e., North American Person, Asian Person, and European Person."/>
- </eAnnotations>
- <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.&#xD;&#xA;generalization->collect(g | g.general)->asSet()->size() &lt;= 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isCovering" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates (via the associated Generalizations) whether or not the set of specific Classifiers are covering for a particular general classifier. When isCovering is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the GeneralizationSet. When isCovering is false, there are one or more instances of the particular general Classifier that are not instances of at least one of its specific Classifiers defined for the GeneralizationSet.&#xD;&#xA;&#xD;&#xA;For example, Person could have two Generalization relationships each with a different specific Classifier: Male Person and Female Person. This GeneralizationSet would be covering because every instance of Person would be an instance of Male Person or Female Person. In contrast, Person could have a three Generalization relationships involving three specific Classifiers: North American Person, Asian Person, and European Person. This GeneralizationSet would not be covering because there are instances of Person for which these three specific Classifiers do not apply. The first example, then, could be read: any Person would be specialized as either being a Male Person or a Female Person and nothing else; the second could be read: any Person would be specialized as being North American Person, Asian Person, European Person, or something else."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDisjoint" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates whether or not the set of specific Classifiers in a Generalization relationship have instance in common. If isDisjoint is true, the specific Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. If isDisjoint is false, the specific Classifiers in a particular GeneralizationSet have one or more members in common; that is, their intersection is not empty. For example, Person could have two Generalization relationships, each with the different specific Classifier: Manager or Staff. This would be disjoint because every instance of Person must either be a Manager or Staff. In contrast, Person could have two Generalization relationships involving two specific (and non-covering) Classifiers: Sales Person and Manager. This GeneralizationSet would not be disjoint because there are instances of Person which can be a Sales Person and a Manager."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="powertype" ordered="false"
- eType="#//Classifier" eOpposite="#//Classifier/powertypeExtent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the Classifier that is defined as the power type for the associated GeneralizationSet."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
- upperBound="-1" eType="#//Generalization" eOpposite="#//Generalization/generalizationSet">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the instances of Generalization which are members of a given GeneralizationSet."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
- upperBound="-1" eType="#//Classifier" changeable="false" transient="true"
- derived="true" eOpposite="#//Classifier/feature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding association in Abstractions.&#xD;&#xA;The Classifiers that have this Feature as a feature."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Substitution" eSuperTypes="#//Realization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
- lowerBound="1" eType="#//Classifier">
- <eAnnotations source="subsets" references="#//Dependency/supplier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="substitutingClassifier"
- ordered="false" lowerBound="1" eType="#//Classifier" eOpposite="#//Classifier/substitution">
- <eAnnotations source="subsets" references="#//Dependency/client"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client). Realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an Abstraction is a Dependency in which there is a mapping between the supplier and the client."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" ordered="false"
- eType="#//OpaqueExpression" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An composition of an Expression that states the abstraction relationship between the supplier and the client. In some cases, such as Derivation, it is usually formal and unidirectional; in other cases, such as Trace, it is usually informal and bidirectional. The mapping expression is optional and may be omitted if the precise relationship between the elements is not specified."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OpaqueExpression" eSuperTypes="#//ValueSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xD;&#xA;An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xD;&#xA;One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.&#xD;&#xA;&#xD;&#xA;Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- </eAnnotations>
- <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the language attribute is not empty, then the size of the body and language arrays must be the same.&#xD;&#xA;language->notEmpty() implies (body->size() = language->size())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The behavior may only have return result parameters.&#xD;&#xA;self.behavior.notEmpty() implies&#xD;&#xA; self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="one_return_result_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The behavior must have exactly one return result parameter.&#xD;&#xA;self.behavior.notEmpty() implies&#xD;&#xA; self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getResult" ordered="false" eType="#//Parameter"/>
- <eOperations name="value" ordered="false" lowerBound="1" eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query value() gives an integer value for an expression intended to produce one.&#xD;&#xA;self.isIntegral()&#xD;&#xA;true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isIntegral" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isIntegral() tells whether an expression is intended to produce an integer.&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isPositive" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isPositive() tells whether an integer expression has a positive value.&#xD;&#xA;self.isIntegral()&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isNonNegative" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xD;&#xA;self.isIntegral()&#xD;&#xA;result = false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" upperBound="-1" eType="#//String"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The text of the expression, possibly in multiple languages."/>
- </eAnnotations>
- <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
- <details key="kind" value="element"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the language. If languages are unspecified, it might be implicit from the expression body or the context. Languages are matched to body strings by order.&#xD;&#xA;Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Restricts an opaque expression to return exactly one return result. When the invocation of the opaque expression completes, a single set of values is returned to its owner. This association is derived from the single return result parameter of the associated behavior."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
- eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the behavior of the opaque expression."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A parameter is a kind of typed element in order to allow the specification of an optional multiplicity on parameters. In addition, it supports the specification of an optional default value.&#xD;&#xA;A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature. It has a type, and may have a multiplicity and an optional default value.&#xD;&#xA;Parameters are allowed to be treated as connectable elements.&#xD;&#xA;Parameters are extended in complete activities to add support for streaming, exceptions, and parameter sets."/>
- </eAnnotations>
- <eOperations name="connector_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A parameter may only be associated with a connector end within the context of a collaboration.&#xD;&#xA;self.end.notEmpty() implies self.collaboration.notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="stream_and_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A parameter cannot be a stream and exception at the same time.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An input parameter cannot be an exception.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Reentrant behaviors cannot have stream parameters.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getDefault" ordered="false" eType="#//String"/>
- <eOperations name="isSetDefault" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eOperations name="setDefault" ordered="false" lowerBound="1">
- <eParameters name="newDefault" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="unsetDefault" ordered="false" lowerBound="1"/>
- <eOperations name="setBooleanDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="setIntegerDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//Integer"/>
- </eOperations>
- <eOperations name="setStringDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="setUnlimitedNaturalDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eOperations name="setNullDefaultValue" ordered="false" lowerBound="1"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSet" ordered="false"
- upperBound="-1" eType="#//ParameterSet" eOpposite="#//ParameterSet/parameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameter sets containing the parameter. See ParameterSet."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
- eType="#//Operation" changeable="false" volatile="true" transient="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Operation for which this is a formal parameter.&#xD;&#xA;References the Operation owning this parameter."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
- lowerBound="1" eType="#//ParameterDirectionKind" defaultValueLiteral="in">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates whether a parameter is being sent into or out of a behavioral element."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
- eType="#//String" volatile="true" transient="true" unsettable="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isException" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether an output parameter may emit a value to the exclusion of the other outputs."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStream" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="effect" ordered="false"
- eType="#//ParameterEffectKind" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the effect that the owner of the parameter has on values passed in or out of the parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
- eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A MultiplicityElement is an abstract metaclass which includes optional attributes for defining the bounds of a multiplicity. A MultiplicityElement also includes specifications of whether the values in an instantiation of this element must be unique or ordered."/>
- </eAnnotations>
- <eOperations name="upper_gt_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A multiplicity must define at least one valid cardinality that is greater than zero.&#xD;&#xA;upperBound()->notEmpty() implies upperBound() > 0"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The lower bound must be a non-negative integer literal.&#xD;&#xA;lowerBound()->notEmpty() implies lowerBound() >= 0"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The upper bound must be greater than or equal to the lower bound.&#xD;&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="value_specification_constant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="setLower" ordered="false" lowerBound="1">
- <eParameters name="newLower" ordered="false" lowerBound="1" eType="#//Integer"/>
- </eOperations>
- <eOperations name="setUpper" ordered="false" lowerBound="1">
- <eParameters name="newUpper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eOperations name="getLower" ordered="false" lowerBound="1" eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The derived lower attribute must equal the lowerBound.&#xD;&#xA;result = lowerBound()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getUpper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The derived upper attribute must equal the upperBound.&#xD;&#xA;result = upperBound()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isMultivalued" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xD;&#xA;upperBound()->notEmpty()&#xD;&#xA;result = upperBound() > 1"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="includesCardinality" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.&#xD;&#xA;upperBound()->notEmpty() and lowerBound()->notEmpty()&#xD;&#xA;result = (lowerBound() &lt;= C) and (upperBound() >= C)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="C" ordered="false" lowerBound="1" eType="#//Integer"/>
- </eOperations>
- <eOperations name="includesMultiplicity" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xD;&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty()&#xA;and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()&#xA;&#xD;&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="M" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
- </eOperations>
- <eOperations name="lowerBound" ordered="false" lowerBound="1" eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an integer.&#xD;&#xA;result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="upperBound" ordered="false" lowerBound="1" eType="#//UnlimitedNatural">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.&#xD;&#xA;result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered..&#xD;&#xA;For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
- eType="#//UnlimitedNatural" volatile="true" transient="true" defaultValueLiteral="1"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the upper bound of the multiplicity interval.&#xD;&#xA;Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
- eType="#//Integer" volatile="true" transient="true" defaultValueLiteral="1"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the lower bound of the multiplicity interval.&#xD;&#xA;Specifies the lower bound of the multiplicity interval, if it is expressed as an integer."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="upperValue" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specification of the upper bound for this multiplicity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="lowerValue" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specification of the lower bound for this multiplicity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
- eSuperTypes="#//TypedElement #//ParameterableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ConnectableElement is an abstract metaclass representing a set of instances that play roles of a classifier. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier.&#xD;&#xA;ConnectableElement is the connectable element of a ConnectableElementTemplateParameter.&#xD;&#xA;The ConnectableElements attached as role to each ConnectorEnd owned by a Connector must be roles of the classifier that owned the Connector, or they must be ports of such roles. &#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
- eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
- eOpposite="#//ConnectorEnd/role">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Denotes a connector that attaches to this connectable element."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector."/>
- </eAnnotations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a connector end is attached to a port of the containing classifier, partWithPort will be empty.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a connector end references both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The property held in self.partWithPort must not be a Port.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getDefiningEnd" ordered="false" lowerBound="1" eType="#//Property"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
- eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
- eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
- eType="#//ConnectableElement" eOpposite="#//ConnectableElement/end">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature #//ConnectableElement #//DeploymentTarget #//TemplateableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association.&#xD;&#xA;&#xD;&#xA;Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type.&#xD;&#xA;A property is a structural feature.&#xD;&#xA;A property related to a classifier by ownedAttribute represents an attribute, and it may also represent an association end. It relates an instance of the class to a value or collection of values of the type of the attribute.&#xD;&#xA;A property related to an Association by memberEnd or its specializations represents an end of the association. The type of property is the type of the end of the association.&#xD;&#xA;&#xD;&#xA;A property represents a set of instances that are owned by a containing classifier instance.&#xD;&#xA;In the metamodel, Property is a specialization of DeploymentTarget.&#xD;&#xA;Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. Property is indirectly a subclass of Constructs::TypedElement. The range of valid values represented by the property can be controlled by setting the property's type.&#xD;&#xA;&#xD;&#xA;Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined property is derived.&#xD;&#xA;The query isConsistentWith() specifies, for any two Properties in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining property is consistent with a redefined property if the type of the redefining property conforms to the type of the redefined property, the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property, and the redefining property is derived if the redefined attribute is property.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = redefinee.oclIsKindOf(Property) and &#xA; let prop : Property = redefinee.oclAsType(Property) in &#xA; (prop.type.conformsTo(self.type) and &#xA; ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA; ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA; (self.isDerived implies prop.isDerived) and&#xA; (self.isComposite implies prop.isComposite))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isCompatibleWith() determines if this parameterable element is compatible with the specified parameterable element. By default parameterable element P is compatible with parameterable element Q if the kind of P is the same or a subtype as the kind of Q. In addition, for properties, the type must be conformant with the type of the specified parameterable element.&#xD;&#xA;&#xD;&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
- <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
- </contents>
- <contents xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false" lowerBound="1"
- eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This redefines the corresponding attribute in Basic::Property and Abstractions::StructuralFeature.&#xD;&#xA;If true, the attribute may only be read, and not written."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
- </contents>
- </eAnnotations>
- <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A multiplicity of a composite aggregation must not have an upper bound greater than 1.&#xD;&#xA;A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.&#xD;&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="subsetting_context_conforms" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.&#xD;&#xA;self.subsettedProperty->notEmpty() implies&#xA; (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |&#xA; self.subsettedProperty->forAll(sp |&#xA; sp.subsettingContext()->exists(c | sc.conformsTo(c)))))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="redefined_property_inherited" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A redefined property must be inherited from a more general classifier containing the redefining property.&#xD;&#xA;if (redefinedProperty->notEmpty()) then&#xD;&#xA; (redefinitionContext->notEmpty() and&#xD;&#xA; redefinedProperty->forAll(rp|&#xD;&#xA; ((redefinitionContext->collect(fc|&#xD;&#xA; fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="subsetting_rules" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.&#xD;&#xA;self.subsettedProperty->forAll(sp |&#xA; self.type.conformsTo(sp.type) and&#xA; ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies&#xA; self.upperBound()&lt;=sp.upperBound() ))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="navigable_readonly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only a navigable property can be marked as readOnly.&#xD;&#xA;isReadOnly implies isNavigable()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A derived union is derived.&#xD;&#xA;isDerivedUnion implies isDerived"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A derived union is read only.&#xD;&#xA;isDerivedUnion implies isReadOnly"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="subsetted_property_names" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A property may not subset a property with the same name.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="binding_to_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A binding of a property template parameter representing an attribute must be to an attribute.&#xD;&#xA;(isAttribute(self) and (templateParameterSubstitution->notEmpty())&#xD;&#xA; implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getDefault" ordered="false" eType="#//String"/>
- <eOperations name="isSetDefault" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eOperations name="setDefault" ordered="false" lowerBound="1">
- <eParameters name="newDefault" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="setIsComposite" ordered="false" lowerBound="1">
- <eParameters name="newIsComposite" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="setOpposite" ordered="false" lowerBound="1">
- <eParameters name="newOpposite" ordered="false" lowerBound="1" eType="#//Property"/>
- </eOperations>
- <eOperations name="unsetDefault" ordered="false" lowerBound="1"/>
- <eOperations name="setIsNavigable" ordered="false" lowerBound="1">
- <eParameters name="isNavigable" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getOtherEnd" ordered="false" eType="#//Property"/>
- <eOperations name="setBooleanDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="setIntegerDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//Integer"/>
- </eOperations>
- <eOperations name="setStringDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="setUnlimitedNaturalDefaultValue" ordered="false" lowerBound="1">
- <eParameters name="value" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eOperations name="setNullDefaultValue" ordered="false" lowerBound="1"/>
- <eOperations name="isAttribute" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isAttribute() is true if the Property is defined as an attribute of some classifier.&#xD;&#xA;result = Classifier.allInstances->exists(c | c.attribute->includes(p))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="p" ordered="false" lowerBound="1" eType="#//Property"/>
- </eOperations>
- <eOperations name="getOpposite" ordered="false" lowerBound="1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this property is owned by a class, associated with a binary association, and the other end of the association is also owned by a class, then opposite gives the other end.&#xD;&#xA;result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2&#xA; then&#xA; let otherEnd = (association.memberEnd - self)->any() in&#xA; if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif&#xA; else Set {}&#xA; endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isComposite" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The value of isComposite is true only if aggregation is composite.&#xD;&#xA;result = (self.aggregation = #composite)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="subsettingContext" ordered="false" upperBound="-1" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query subsettingContext() gives the context for subsetting a property. It consists, in the case of an attribute, of the corresponding classifier, and in the case of an association end, all of the classifiers at the other ends.&#xD;&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isNavigable" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isNavigable indicates whether it is possible to navigate across the property.&#xD;&#xA;The query isNavigable() indicates whether it is possible to navigate across the property.&#xD;&#xA;result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
- eType="#//Class" changeable="false" volatile="true" transient="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Class that owns the Property."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
- eType="#//DataType" eOpposite="#//DataType/ownedAttribute">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The DataType that owns this Operation.&#xD;&#xA;The DataType that owns this Property.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xD;&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
- eType="#//String" volatile="true" transient="true" unsettable="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xD;&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
- lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the kind of aggregation that applies to the Property."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
- lowerBound="1" eType="#//Boolean" volatile="true" transient="true" defaultValueLiteral="false"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xD;&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
- upperBound="-1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the properties that are redefined by this property."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" ordered="false"
- eType="#//Association" eOpposite="#//Association/ownedEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the owning association of this property, if any.&#xD;&#xA;References the owning association of this property."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Property/association #//NamedElement/namespace #//Feature/featuringClassifier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" ordered="false"
- eType="#//Property" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
- upperBound="-1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the properties of which this property is constrained to be a subset."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
- eType="#//Association" eOpposite="#//Association/memberEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the association of which this property is a member, if any."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" upperBound="-1"
- eType="#//Property" containment="true" eOpposite="#//Property/associationEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="associationEnd" ordered="false"
- eType="#//Property" eOpposite="#//Property/qualifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the optional association end that owns a qualifier attribute."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments."/>
- </eAnnotations>
- <eOperations name="getDeployedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
- upperBound="-1" eType="#//Deployment" containment="true" eOpposite="#//Deployment/location">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of Deployments for a DeploymentTarget."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="deployedElement" ordered="false"
- upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, Deployment is a subtype of Dependency.&#xD;&#xA;A component deployment is the deployment of one or more artifacts or artifact instances to a deployment target, optionally parameterized by a deployment specification. Examples are executables and configuration files."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
- upperBound="-1" eType="#//DeployedArtifact">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/supplier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
- upperBound="-1" eType="#//DeploymentSpecification" containment="true" eOpposite="#//DeploymentSpecification/deployment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts. This association is specialized from the ownedMember association."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
- lowerBound="1" eType="#//DeploymentTarget" eOpposite="#//DeploymentTarget/deployment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The DeployedTarget which is the target of a Deployment."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/client"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DeployedArtifact" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, DeployedArtifact is an abstract metaclass that is a specialization of NamedElement. A DeployedArtifact is involved in one or more Deployments to a DeploymentTarget."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, a DeploymentSpecification is a subtype of Artifact. It defines a set of deployment properties that are specific to a certain Container type. An instance of a DeploymentSpecification with specific values for these properties may be contained in a complex Artifact."/>
- </eAnnotations>
- <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components).&#xD;&#xA;self.deployment->forAll (d | d.location.deployedElements->forAll (de |&#xD;&#xA; de.oclIsKindOf(Component)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.&#xD;&#xA;result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="deploymentLocation" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
- eType="#//Deployment" eOpposite="#//Deployment/configuration">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The deployment with which the DeploymentSpecification is associated."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property.&#xD;&#xA;As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass."/>
- </eAnnotations>
- <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- <eParameters name="returnType" ordered="false" eType="#//Type"/>
- </eOperations>
- <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- <eParameters name="lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
- upperBound="-1" eType="#//Artifact" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact.&#xD;&#xA;The association is a specialization of the ownedMember association from Namespace to NamedElement.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
- upperBound="-1" eType="#//Manifestation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/clientDependency #//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
- eType="#//Operation" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The attributes or association ends defined for the Artifact.&#xD;&#xA;The association is a specialization of the ownedMember association.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Manifestation" eSuperTypes="#//Abstraction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="utilizedElement" ordered="false"
- lowerBound="1" eType="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/supplier"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//ParameterableElement #//TemplateableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element.&#xD;&#xA;An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xD;&#xA;One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.&#xD;&#xA;&#xD;&#xA;An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.&#xD;&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xD;&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.&#xD;&#xA;The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining operation is consistent with a redefined operation if it has the same number of owned parameters, and the type of each owned parameter conforms to the type of the corresponding redefined parameter. &#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = (redefinee.oclIsKindOf(Operation) and&#xA;let op: Operation = redefinee.oclAsType(Operation) in&#xA;self.ownedParameter.size() = op.ownedParameter.size() and&#xA;forAll(i | op.ownedParameter[i].type.conformsTo(self.ownedParameter[i].type))&#xA;)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
- eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xD;&#xA;Specifies the parameters owned by this Operation."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
- upperBound="-1" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
- eType="#//TemplateParameter" eOpposite="#//OperationTemplateParameter/%duplicates%/parameteredElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
- </contents>
- </eAnnotations>
- <eOperations name="at_most_one_return" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'&#xD;&#xA;self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="only_body_for_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A bodyCondition can only be specified for a query operation.&#xD;&#xA;bodyCondition->notEmpty() implies isQuery"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getLower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eOperations name="getUpper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- <eOperations name="setIsOrdered" ordered="false" lowerBound="1">
- <eParameters name="newIsOrdered" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="setIsUnique" ordered="false" lowerBound="1">
- <eParameters name="newIsUnique" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="setLower" ordered="false" lowerBound="1">
- <eParameters name="newLower" ordered="false" lowerBound="1" eType="#//Integer"/>
- </eOperations>
- <eOperations name="setType" ordered="false" lowerBound="1">
- <eParameters name="newType" ordered="false" lowerBound="1" eType="#//Type"/>
- </eOperations>
- <eOperations name="setUpper" ordered="false" lowerBound="1">
- <eParameters name="newUpper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eOperations name="getReturnResult" ordered="false" eType="#//Parameter"/>
- <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isUnique" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xD;&#xA;If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xD;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="lowerBound" ordered="false" lowerBound="1" eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xD;&#xA;If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xD;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="upperBound" ordered="false" lowerBound="1" eType="#//UnlimitedNatural">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xD;&#xA;If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xD;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xD;&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
- eType="#//Interface" eOpposite="#//Interface/ownedOperation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Interface that owns this Operation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="class" ordered="false"
- eType="#//Class" eOpposite="#//Class/ownedOperation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The class that owns the operation.&#xD;&#xA;The class that owns this operation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Feature/featuringClassifier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
- lowerBound="1" eType="#//Boolean" volatile="true" transient="true" defaultValueLiteral="false"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is ordered or not, if present."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
- lowerBound="1" eType="#//Boolean" volatile="true" transient="true" defaultValueLiteral="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is unique or not, if present."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
- eType="#//Integer" volatile="true" transient="true" defaultValueLiteral="1"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
- eType="#//UnlimitedNatural" volatile="true" transient="true" defaultValueLiteral="1"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
- upperBound="-1" eType="#//Constraint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
- upperBound="-1" eType="#//Constraint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
- upperBound="-1" eType="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Operations that are redefined by this Operation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
- eType="#//DataType" eOpposite="#//DataType/ownedOperation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The DataType that owns this Operation.&#xD;&#xA;The DataType that owns this Property."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace #//RedefinableElement/redefinitionContext #//Feature/featuringClassifier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
- eType="#//Constraint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
- volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the return result of the operation, if present."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature.&#xD;&#xA;A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior.&#xD;&#xA;BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature.&#xD;&#xA;&#xD;&#xA;A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.&#xD;&#xA;The concept of BehavioralFeature is extended to own ParameterSets."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xD;&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA; if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA; then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA; else true&#xA; endif&#xA;else true&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
- <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
- </contents>
- </eAnnotations>
- <eOperations name="createReturnResult" ordered="false" lowerBound="1" eType="#//Parameter">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
- eType="#//Parameter" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xD;&#xA;Specifies the ordered set of formal parameters owned by this BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr 'return' to specify input, output, or return parameters."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
- upperBound="-1" eType="#//Behavior" eOpposite="#//Behavior/specification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="concurrency" ordered="false"
- lowerBound="1" eType="#//CallConcurrencyKind" defaultValueLiteral="sequential">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
- upperBound="-1" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature.&#xD;&#xA;The signals that the behavioral feature raises as exceptions."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
- upperBound="-1" eType="#//ParameterSet" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ParameterSets owned by this BehavioralFeature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Behavior" abstract="true" eSuperTypes="#//Class">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.&#xD;&#xA;&#xD;&#xA;A classifier behavior is always a definition of behavior and not an illustration. It describes the sequence of state changes an instance of a classifier may undergo in the course of its lifetime. Its precise semantics depends on the kind of classifier. For example, the classifier behavior of a collaboration represents emergent behavior of all the parts, whereas the classifier behavior of a class is just the behavior of instances of the class separated from the behaviors of any of its parts.&#xD;&#xA;When a behavior is associated as the method of a behavioral feature, it defines the implementation of that feature; i.e., the computation that generates the effects of the behavioral feature.&#xD;&#xA;&#xD;&#xA;As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as &quot;invoking&quot; the behavior, an instantiated behavior is also called a behavior &quot;execution.&quot; A behavior may be invoked directly or its invocation may be the result of invoking the behavioral feature that specifies this behavior. A behavior can also be instantiated as an object in virtue of it being a class. The specification of a behavior can take a number of forms, as described in the subclasses of Behavior. Behavior is an abstract metaclass factoring out the commonalities of these different specification mechanisms.&#xD;&#xA;&#xD;&#xA;When a behavior is invoked, its execution receives a set of input values that are used to affect the course of execution and as a result of its execution it produces a set of output values which are returned, as specified by its parameters. The observable effects of a behavior execution may include changes of values of various objects involved in the execution, the creation and destruction of objects, generation of communications between objects, as well as an explicit set of output values.&#xD;&#xA;&#xD;&#xA;The concept of Behavior is extended to own ParameterSets."/>
- </eAnnotations>
- <eOperations name="parameters_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameters of the behavior must match the parameters of the implemented behavioral feature.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="must_realize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getContext" ordered="false" eType="#//BehavioredClassifier"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReentrant" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the behavior can be invoked while it is still executing from a previous invocation."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedBehavior" ordered="false"
- upperBound="-1" eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
- eType="#//Parameter" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
- eType="#//BehavioredClassifier" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
- upperBound="-1" eType="#//ParameterSet" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ParameterSets owned by this Behavior."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
- eType="#//BehavioralFeature" eOpposite="#//BehavioralFeature/method">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier (i.e., it is the behavior of the classifier as a whole)."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//EncapsulatedClassifier #//BehavioredClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations.&#xD;&#xA;A class may be designated as active, i.e., each of its instances having its own thread of control, or passive, i.e., each of its instance executing within the context of some other object. A class may also specify which signals the instances of this class handle.&#xD;&#xA;Extends the metaclass Class with the capability to have an internal structure and ports.&#xD;&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
- eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Classifier/inherit"/>
- <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
- </contents>
- <contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
- eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="True when a class is abstract.&#xD;&#xA;If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true" eOpposite="#//Property/class">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
- <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
- </contents>
- </eAnnotations>
- <eOperations name="passive_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A passive class may not own receptions.&#xD;&#xA;not self.isActive implies self.ownedReception.isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getExtensions" ordered="false" upperBound="-1" eType="#//Extension"/>
- <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- <eParameters name="returnType" ordered="false" eType="#//Type"/>
- </eOperations>
- <eOperations name="isMetaclass" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
- eType="#//Classifier" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
- eType="#//Operation" containment="true" eOpposite="#//Operation/class">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operations owned by the class."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
- upperBound="-1" eType="#//Class" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This gives the superclasses of a class."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Classifier/general"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
- upperBound="-1" eType="#//Reception" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Receptions that objects of this class are willing to accept."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/feature"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
- upperBound="-1" eType="#//Extension" changeable="false" volatile="true" transient="true"
- derived="true" eOpposite="#//Extension/metaclass">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
- eSuperTypes="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A BehavioredClassifier may have an interface realization.&#xD;&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself."/>
- </eAnnotations>
- <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a behavior is classifier behavior, it does not have a specification.&#xD;&#xA;self.classifierBehavior.notEmpty() implies self.specification.isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getImplementedInterfaces" ordered="false" upperBound="-1" eType="#//Interface"/>
- <eOperations name="getAllImplementedInterfaces" ordered="false" upperBound="-1"
- eType="#//Interface"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
- upperBound="-1" eType="#//Behavior" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References behavior specifications owned by a classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
- eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
- upperBound="-1" eType="#//InterfaceRealization" containment="true" eOpposite="#//InterfaceRealization/implementingClassifier">
- <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTrigger" ordered="false"
- upperBound="-1" eType="#//Trigger" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References Trigger descriptions owned by a Classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InterfaceRealization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
- lowerBound="1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Interface specifying the conformance contract."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/supplier"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
- ordered="false" lowerBound="1" eType="#//BehavioredClassifier" eOpposite="#//BehavioredClassifier/interfaceRealization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/client"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.&#xD;&#xA;Since interfaces are declarations, they are not instantiable. Instead, an interface specification is implemented by an instance of an instantiable classifier, which means that the instantiable classifier presents a public facade that conforms to the interface specification. Note that a given classifier may implement more than one interface and that an interface may be implemented by a number of different classifiers.&#xD;&#xA;&#xD;&#xA;Adds the capability for interfaces to include receptions (in addition to operations).&#xD;&#xA;Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface."/>
- </eAnnotations>
- <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The visibility of all features owned by an interface must be public.&#xD;&#xA;self.feature->forAll(f | f.visibility = #public)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- <eParameters name="returnType" ordered="false" eType="#//Type"/>
- </eOperations>
- <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- <eParameters name="lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
- eType="#//Operation" containment="true" eOpposite="#//Operation/interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operations owned by the class."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
- eType="#//Classifier" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
- upperBound="-1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References all the Interfaces redefined by this Interface."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
- upperBound="-1" eType="#//Reception" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Receptions that objects providing this interface are willing to accept."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
- eType="#//ProtocolStateMachine" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself."/>
- </eAnnotations>
- <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Reception can not be a query.&#xD;&#xA;not self.isQuery"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
- eType="#//Signal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The signal that this reception handles."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence."/>
- </eAnnotations>
- <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- <eParameters name="lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The attributes owned by the signal."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A protocol state machine must only have a classifier context, not a behavioral feature context.&#xD;&#xA;(not context->isEmpty( )) and specification->isEmpty()"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)&#xD;&#xA;region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The states of a protocol state machine cannot have entry, exit, or do activity actions.&#xD;&#xA;region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies&#xA;(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Protocol state machines cannot have deep or shallow history pseudostates.&#xD;&#xA;region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies&#xA;((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If two ports are connected, then the protocol state machine of the required interface (if defined) must be conformant to the protocol state machine of the provided interface (if defined).&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
- upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Conformance between protocol state machines."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state machine owns one or more regions, which in turn own vertices and transitions.&#xD;&#xA;The behaviored classifier context owning a state machine defines which signal and call triggers are defined for the state machine, and which attributes and operations are available in activities of the state machine. Signal triggers and call triggers for the state machine are defined according to the receptions and operations of this classifier.&#xD;&#xA;&#xD;&#xA;As a kind of behavior, a state machine may have an associated behavioral feature (specification) and be the method of this behavioral feature. In this case the state machine specifies the behavior of this behavioral feature. The parameters of the state machine in this case match the parameters of the behavioral feature and provide the means for accessing (within the state machine) the behavioral feature parameters.&#xD;&#xA;&#xD;&#xA;A state machine without a context classifier may use triggers that are independent of receptions or operations of a classifier, i.e. either just signal triggers or call triggers based upon operation template parameters of the (parameterized) statemachine.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies that a redefining state machine is consistent with a redefined state machine provided that the redefining state machine is an extension of the redefined state machine: Regions are inherited and regions can be added, inherited regions can be redefined. In case of multiple redefining state machines, extension implies that the redefining state machine gets orthogonal regions for each of the redefined state machines.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- </eAnnotations>
- <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier context of a state machine cannot be an interface.&#xD;&#xA;context->notEmpty() implies not context.oclIsKindOf(Interface)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.&#xD;&#xA;specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connection points of a state machine are pseudostates of kind entry point or exit point.&#xD;&#xA;conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state machine as the method for a behavioral feature cannot have entry/exit connection points.&#xD;&#xA;specification->notEmpty() implies connectionPoint->isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation LCA(s1,s2) returns an orthogonal state or region which is the least common ancestor of states s1 and s2, based on the statemachine containment hierarchy.&#xD;&#xA;true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
- <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
- </eOperations>
- <eOperations name="ancestor" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean&#xD;&#xA;&#xD;&#xA;result = if (s2 = s1) then&#xA;true&#xA;else if (s1.container->isEmpty) then&#xA;true&#xA;else if (s2.container->isEmpty) then&#xA;false&#xA;else (ancestor (s1, s2.container))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
- <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
- </eOperations>
- <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a statemachine are properly related to the redefinition contexts of the specified statemachine to allow this element to redefine the other. The containing classifier of a redefining statemachine must redefine the containing classifier of the redefined statemachine.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
- <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//StateMachine"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The regions owned directly by the state machine."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="submachineState" ordered="false"
- upperBound="-1" eType="#//State" eOpposite="#//State/submachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
- upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/stateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
- upperBound="-1" eType="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The state machines of which this is an extension."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies that a redefining region is consistent with a redefined region provided that the redefining region is an extension of the redefined region, i.e. it adds vertices and transitions and it redefines states and transitions of the redefined region.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
- upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the classifier in which context this element may be redefined."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
- </contents>
- </eAnnotations>
- <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A region can have at most one initial vertex&#xD;&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A region can have at most one deep history vertex&#xD;&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A region can have at most one shallow history vertex&#xD;&#xA;self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.&#xD;&#xA;(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a region are properly related to the redefinition contexts of the specified region to allow this element to redefine the other. The containing statemachine/state of a redefining region must redefine the containing statemachine/state of the redefined region.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
- <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//Region"/>
- </eOperations>
- <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xD;&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xD;&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
- upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of vertices that are owned by this region."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
- upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
- eType="#//State" eOpposite="#//State/region">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
- eType="#//Region">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The region of which this region is an extension."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
- eType="#//StateMachine" eOpposite="#//StateMachine/region">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions."/>
- </eAnnotations>
- <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation containingStateMachine() returns the state machine in which this Vertex is defined&#xD;&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
- upperBound="-1" eType="#//Transition" eOpposite="#//Transition/source">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the transitions departing from this vertex."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
- upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the transitions entering this vertex."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
- eType="#//Region" eOpposite="#//Region/subvertex">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The region that contains this vertex."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace #//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.&#xD;&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xD;&#xA; let trans: Transition = redefinee.oclAsType(Transition) in&#xD;&#xA; (source() = trans.source() and trigger() = tran.trigger())&#xD;&#xA;redefinee.isRedefinitionContextValid(self)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
- upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the classifier in which context this element may be redefined."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
- </contents>
- </eAnnotations>
- <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A fork segment must not have guards or triggers.&#xD;&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A join segment must not have guards or triggers.&#xD;&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A fork segment must always target a state.&#xD;&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A join segment must always originate from a state.&#xD;&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Transitions outgoing pseudostates may not have a trigger.&#xD;&#xA;source.oclIsKindOf(Pseudostate) and&#xA;((source.kind &lt;> #junction) and (source.kind &lt;> #join) and (source.kind &lt;> #initial)) implies trigger->isEmpty()&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype «create».&#xD;&#xA;self.source.oclIsKindOf(Pseudostate) implies&#xA;(self.source.oclAsType(Pseudostate).kind = #initial) implies&#xA;(self.source.container = self.stateMachine.top) implies&#xA;((self.trigger->isEmpty) or&#xA;(self.trigger.stereotype.name = 'create'))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In case of more than one trigger, the signatures of these must be compatible in case the parameters of the signal are assigned to local variables/attributes.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xD;&#xA;result = container.containingStateMachine()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
- eType="#//TransitionKind" defaultValueLiteral="external">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates the precise type of the transition."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
- lowerBound="1" eType="#//Region" eOpposite="#//Region/transition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the region that owns this transition."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incoming">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
- eType="#//Transition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The transition that is redefined by this transition."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
- eType="#//Constraint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
- eType="#//Behavior" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
- upperBound="-1" eType="#//Trigger" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the triggers that may fire the transition."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
- lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/outgoing">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="TransitionKind is an enumeration of the following literal values:&#xD;&#xA; - external&#xD;&#xA; - internal&#xD;&#xA; - local&#xD;&#xA;kind=#local implies owner.source.isComposite&#xD;&#xA;kind=#external implies owner.source.isComposite"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="state_is_local state_is_external"/>
- </eAnnotations>
- <eLiterals name="internal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="kind=internal implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="local" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="kind=local implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="external" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="kind=external implies that the transition, if triggered, will exit the composite (source) state."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A trigger specifies an event that may cause the execution of an associated behavior. An event is often ultimately caused by the execution of an action, but need not be.&#xD;&#xA;A trigger specification may be qualified by the port on which the event occurred."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
- lowerBound="1" eType="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The event that causes the trigger."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
- eType="#//Port">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Ports represent interaction points between a classifier and its environment. The interfaces associated with a port specify the nature of the interactions that may occur over a port. The required interfaces of a port characterize the requests which may be made from the classifier to its environment through this port. The provided interfaces of a port characterize requests to the classifier that its environment may make through this port.&#xD;&#xA;&#xD;&#xA;A port has the ability to specify that any requests arriving at this port are handled by the behavior of the instance of the owning classifier, rather than being forwarded to any contained instances, if any.&#xD;&#xA;&#xD;&#xA;Port is defined as a specialization of the general Port, adding an association to a protocol state machine."/>
- </eAnnotations>
- <eOperations name="required_interfaces" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The required interfaces of a port must be provided by elements to which the port is connected.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Port.aggregation must be composite.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="When a port is destroyed, all connectors attached to this port will be destroyed also.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A defaultValue for port cannot be specified when the type of the Port is an Interface&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface"/>
- <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such ports are referred to as behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances that this classifier may contain."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true indicates that this port is used to provide the published functionality of a classifier; if false, this port is used to implement the classifier but is not part of the essential externally-visible functionality of the classifier and can, therefore, be altered or deleted along with the internal implementation of the classifier and other properties that are considered part of its implementation."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
- upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the interfaces specifying the set of operations and receptions which the classifier expects its environment to handle. This association is derived as the set of interfaces required by the type of the port or its supertypes."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
- upperBound="-1" eType="#//Port">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
- upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the interfaces specifying the set of operations and receptions which the classifier offers to its environment, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived from the interfaces realized by the type of the port or by the type of the port, if the port was typed by an interface.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
- eType="#//ProtocolStateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur. However, it can also model dynamic conditions such as the process of performing some behavior (i.e., the model element under consideration enters the state when the behavior commences and leaves it as soon as the behavior is completed). The following kinds of states are distinguished:&#xD;&#xA;o Simple state,&#xD;&#xA;o composite state, and&#xD;&#xA;o submachine state.&#xD;&#xA;A composite state is either a simple composite state (with just one region) or an orthogonal state (with more than one region).&#xD;&#xA;&#xD;&#xA;Simple state&#xD;&#xA;A simple state is a state that does not have substates, i.e. it has no regions and it has no submachine state machine.&#xD;&#xA;&#xD;&#xA;Composite state&#xD;&#xA;A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions. A given state may only be decomposed in one of these two ways. &#xD;&#xA;Any state enclosed within a region of a composite state is called a substate of that composite state. It is called a direct substate when it is not contained by any other state; otherwise it is referred to as a indirect substate. &#xD;&#xA;Each region of a composite state may have an initial pseudostate and a final state. A transition to the enclosing state represents a transition to the initial pseudostate in each region. A newly-created object takes it's topmost default transitions, originating from the topmost initial pseudostates of each region.&#xD;&#xA;&#xD;&#xA;A transition to a final state represents the completion of behavior in the enclosing region. Completion of behavior in all orthogonal regions represents completion of behavior by the enclosing state and triggers a completion event on the enclosing state. Completion of the topmost regions of an object corresponds to its termination.&#xD;&#xA;&#xD;&#xA;An entry pseudostate is used to join an external transition terminating on that entry point to an internal transition emanating from that entry point. An exit pseudostate is used to join an internal transition terminating on that exit point to an external transition emanating from that exit point. The main purpose of such entry and exit points is to execute the state entry and exit actions respectively in between the actions that are associated with the joined transitions.&#xD;&#xA;&#xD;&#xA;Semantic variation point (default entry rule)&#xD;&#xA;If a transition terminates on an enclosing state and the enclosed regions do not have an initial pseudostate, the interpretation of this situation is a semantic variation point. In some interpretations, this is considered an ill-formed model. That is, in those cases the initial pseudostate is mandatory. &#xD;&#xA;An alternative interpretation allows this situation and it means that, when such a transition is taken, the state machine stays in the composite state, without entering any of the regions or their substates.&#xD;&#xA;&#xD;&#xA;Submachine state&#xD;&#xA;A submachine state specifies the insertion of the specification of a submachine state machine. The state machine that contains the submachine state is called the containing state machine. The same state machine may be a submachine more than once in the context of a single containing state machine.&#xD;&#xA;&#xD;&#xA;A submachine state is semantically equivalent to a composite state. The regions of the submachine state machine are the regions of the composite state. The entry, exit and behavior actions, and internal transitions, are defined as part of the state. Submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse.&#xD;&#xA;Transitions in the containing state machine can have entry/exit points of the inserted state machine as targets/sources.&#xD;&#xA;&#xD;&#xA;The states of protocol state machines are exposed to the users of their context classifiers. A protocol state represents an exposed stable situation of its context classifier: when an instance of the classifier is not processing any operation, users of this instance can always know its state configuration."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies that a redefining state is consistent with a redefined state provided that the redefining state is an extension of the redefined state: A simple state can be redefined (extended) to become a composite state (by adding a region) and a composite state can be redefined (extended) by adding regions and by adding vertices, states, and transitions to inherited regions. All states may add or replace entry, exit, and 'doActivity' actions.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
- lowerBound="1" eType="#//StateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xD;&#xA;result = container.containingStateMachine()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Vertex/containingStateMachine"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
- upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the classifier in which context this element may be redefined."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
- </contents>
- </eAnnotations>
- <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only submachine states can have connection point references.&#xD;&#xA;isSubmachineState implies connection->notEmpty ( )"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connection point references used as destinations/sources of transitions associated with a submachine state must be defined as entry/exit points in the submachine state machine.&#xD;&#xA;self.isSubmachineState implies (self.connection->forAll (cp |&#xD;&#xA;cp.entry->forAll (p | p.statemachine = self.submachine) and&#xD;&#xA;cp.exit->forAll (p | p.statemachine = self.submachine)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state is not allowed to have both a submachine and regions.&#xD;&#xA;isComposite implies not isSubmachineState"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only composite states can have entry or exit pseudostates defined.&#xD;&#xA;connectionPoint->notEmpty() implies isComoposite"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only entry or exit pseudostates can serve as connection points.&#xD;&#xA;connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="isSimple" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A simple state is a state without any regions.&#xD;&#xA;result = region.isEmpty()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isComposite" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A composite state is a state with at least one region.&#xD;&#xA;result = region.notEmpty()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xD;&#xA;result = (region->size () > 1)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only submachine states can have a reference statemachine.&#xD;&#xA;result = submachine.notEmpty()"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isRedefinitionContextValid() specifies whether the redefinition contexts of a state are properly related to the redefinition contexts of the specified state to allow this element to redefine the other. The containing region of a redefining state must redefine the containing region of the redefined state.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid"/>
- <eParameters name="redefined" ordered="false" lowerBound="1" eType="#//State"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
- lowerBound="1" eType="#//Boolean" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="false" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
- lowerBound="1" eType="#//Boolean" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="false" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
- lowerBound="1" eType="#//Boolean" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
- lowerBound="1" eType="#//Boolean" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="false" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
- eType="#//StateMachine" eOpposite="#//StateMachine/submachineState">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
- upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/state">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
- upperBound="-1" eType="#//Pseudostate" containment="true" eOpposite="#//Pseudostate/state">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
- eType="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The state of which this state is a redefinition."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
- eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
- eType="#//Behavior" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
- eType="#//Behavior" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
- upperBound="-1" eType="#//Trigger" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
- upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The regions owned directly by the state."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Connection point references of a submachine state can be used as sources/targets of transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state."/>
- </eAnnotations>
- <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The entry Pseudostates must be Pseudostates with kind entryPoint.&#xD;&#xA;entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The exit Pseudostates must be Pseudostates with kind exitPoint.&#xD;&#xA;exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
- upperBound="-1" eType="#//Pseudostate">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
- eType="#//Pseudostate">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
- eType="#//State" eOpposite="#//State/connection">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The State in which the connection point refreshens are defined."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Pseudostates are typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudostate with a set of transitions exiting the fork pseudostate, we get a compound transition that leads to a set of orthogonal target states."/>
- </eAnnotations>
- <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An initial vertex can have at most one outgoing transition.&#xD;&#xA;(self.kind = #initial) implies (self.outgoing->size &lt;= 1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="History vertices can have at most one outgoing transition.&#xD;&#xA;((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies&#xA;(self.outgoing->size &lt;= 1)&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.&#xD;&#xA;(self.kind = #join) implies&#xA;((self.outgoing->size = 1) and (self.incoming->size >= 2))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All transitions incoming a join vertex must originate in different regions of an orthogonal state.&#xD;&#xA;(self.kind = #join) implies&#xA; self.incoming->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.&#xD;&#xA;(self.kind = #fork) implies&#xA;((self.incoming->size = 1) and (self.outgoing->size >= 2))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.&#xD;&#xA;(self.kind = #fork) implies&#xA; self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.&#xD;&#xA;(self.kind = #junction) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.&#xD;&#xA;(self.kind = #choice) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.&#xD;&#xA;(self.kind = #initial) implies (self.outgoing.guard->isEmpty()&#xD;&#xA; and self.outgoing.trigger->isEmpty())"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
- eType="#//PseudostateKind" defaultValueLiteral="initial">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
- eType="#//StateMachine" eOpposite="#//StateMachine/connectionPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
- eType="#//State" eOpposite="#//State/connectionPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The State that owns this pseudostate and in which it appears."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="PseudoStateKind is an enumeration of the following literal values:&#xD;&#xA; - initial&#xD;&#xA; - deepHistory&#xD;&#xA; - shallowHistory&#xD;&#xA; - join&#xD;&#xA; - fork&#xD;&#xA; - junction&#xD;&#xA; - choice&#xD;&#xA; - entryPoint&#xD;&#xA; - exitPoint&#xD;&#xA; - terminate"/>
- </eAnnotations>
- <eLiterals name="initial">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="deepHistory" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="shallowHistory" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="join" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="fork" value="4">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices&#xD;&#xA;(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="junction" value="5">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted 'else' may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below)."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="choice" value="6">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above)."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="entryPoint" value="7">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="exitPoint" value="8">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="terminate" value="9">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines.&#xD;&#xA;&#xD;&#xA;Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine.&#xD;&#xA;&#xD;&#xA;A protocol state machine is owned by a classifier. The classifiers owning a general state machine and an associated specific state machine are generally also connected by a generalization or a realization link.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
- lowerBound="1" eType="#//ProtocolStateMachine">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
- lowerBound="1" eType="#//ProtocolStateMachine" eOpposite="#//ProtocolStateMachine/conformance">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the state machine which conforms to the general state machine."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
- eSuperTypes="#//StructuredClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Extends a classifier with the ability to own ports as specific and type checked interaction points."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
- upperBound="-1" eType="#//Port" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
- eSuperTypes="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A structured classifier is an abstract metaclass that represents any classifier whose behavior can be fully or partly described by the collaboration of owned or referenced instances."/>
- </eAnnotations>
- <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicities on connected elements must be consistent.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- <eParameters name="lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the properties owned by the classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//StructuredClassifier/role #//Namespace/ownedMember #//Classifier/attribute"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
- eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
- eType="#//ConnectableElement" changeable="false" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the roles that instances may play in this classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/member"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
- upperBound="-1" eType="#//Connector" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the connectors owned by the classifier."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over a connector. The communications realized over a connector may be constrained by various constraints (including type constraints) that apply to the attached connectable elements.&#xD;&#xA;In the metamodel, a connector kind attribute is added to the Connector metaclass. Its value is an enumeration type with valid values 'assembly' or 'delegation'."/>
- </eAnnotations>
- <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connectable elements attached to the ends of a connector must be compatible.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ConnectableElements attached as roles to each ConnectorEnd owned by a Connector must be roles of the Classifier that owned the Connector, or they must be ports of such roles.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A delegation connector must only be defined between used Interfaces or Ports of the same kind, e.g. between two provided Ports or between two required Ports.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="between_interface_port_implements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a delegation connector is defined between a used Interface or Port and an internal Part Classifier, then that Classifier must have an 'implements' relationship to the Interface type of that Port.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="between_interface_port_signature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a delegation connector is defined between a source Interface or Port and a target Interface or Port, then the target Interface must support a signature compatible subset of Operations of the source Interface or Port.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="union_signature_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In a complete model, if a source Port has delegation connectors to a set of delegated target Ports, then the union of the Interfaces of these target Ports must be signature compatible with the Interface that types the source Port.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="assembly_connector" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An optional association that specifies the link corresponding to this connector."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
- upperBound="-1" eType="#//Connector">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector.&#xD;&#xA;The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
- eType="#//ConnectorEnd" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A connector consists of at least two connector ends, each representing the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" eType="#//ConnectorKind"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates the kind of connector."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
- upperBound="-1" eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of Behaviors that specify the valid interaction patterns across the connector."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ConnectorKind is an enumeration of the following literal values:&#xD;&#xA; - assembly = Indicates that the connector is an assembly connector.&#xD;&#xA; - delegation = Indicates that the connector is a delegation connector."/>
- </eAnnotations>
- <eLiterals name="assembly">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that the connector is an assembly connector."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="delegation" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that the connector is a delegation connector."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Extension" eSuperTypes="#//Association">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Extension is a kind of Association. One end of the Extension is an ordinary Property and the other end is an ExtensionEnd. The former ties the Extension to a Class, while the latter ties the Extension to a Stereotype that extends the Class."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1" eType="#//ExtensionEnd"
- containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the end of the extension that is typed by a Stereotype."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Association/ownedEnd"/>
- </contents>
- </eAnnotations>
- <eOperations name="non_owned_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The non-owned end of an Extension is typed by a Class.&#xD;&#xA;metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="is_binary" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An Extension is binary, i.e., it has only two memberEnds.&#xD;&#xA;memberEnd->size() = 2"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getStereotypeEnd" ordered="false" eType="#//Property"/>
- <eOperations name="getStereotype" ordered="false" eType="#//Stereotype"/>
- <eOperations name="metaclassEnd" ordered="false" lowerBound="1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).&#xD;&#xA;result = memberEnd->reject(ownedEnd)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getMetaclass" ordered="false" lowerBound="1" eType="#//Class">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype).&#xD;&#xA;result = metaclassEnd().type"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="isRequired" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1.&#xD;&#xA;result = (ownedEnd->lowerBound() = 1)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" ordered="false"
- lowerBound="1" eType="#//Boolean" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="false" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates whether an instance of the extending stereotype must be created when an instance of the extended class is created. The attribute value is derived from the multiplicity of the Property referenced by Extension::ownedEnd; a multiplicity of 1 means that isRequired is true, but otherwise it is false. Since the default multiplicity of an ExtensionEnd is 0..1, the default value of isRequired is false."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="metaclass" ordered="false"
- lowerBound="1" eType="#//Class" changeable="false" volatile="true" transient="true"
- derived="true" eOpposite="#//Class/extension">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExtensionEnd" eSuperTypes="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ExtensionEnd is a kind of Property that is always typed by a Stereotype. An ExtensionEnd is never navigable. If it was navigable, it would be a property of the extended classifier. Since a profile is not allowed to change the referenced metamodel, it is not possible to add properties to the extended classifier. As a consequence, an ExtensionEnd can only be owned by an Extension. The aggregation of an ExtensionEnd is always composite. The default multiplicity of an ExtensionEnd is 0..1."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="getLower" ordered="false" lowerBound="1"
- eType="#//Integer">
- <eAnnotations source="redefines" references="#//MultiplicityElement/getLower"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="setLower" ordered="false" lowerBound="1">
- <eAnnotations source="redefines" references="#//MultiplicityElement/setLower"/>
- <eParameters name="newLower" ordered="false" lowerBound="1" eType="#//Integer"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="lowerBound" ordered="false" lowerBound="1"
- eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default&#xD;&#xA;lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.&#xD;&#xA;result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//MultiplicityElement/lowerBound"/>
- </contents>
- <contents xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TypedElement/type"/>
- </contents>
- <contents xsi:type="ecore:EAttribute" name="lower" ordered="false" eType="#//Integer"
- volatile="true" transient="true" defaultValueLiteral="0" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//MultiplicityElement/lower"/>
- </contents>
- </eAnnotations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of ExtensionEnd is 0..1 or 1.&#xD;&#xA;(self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The aggregation of an ExtensionEnd is composite.&#xD;&#xA;self.aggregation = #composite"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Stereotype is a kind of Class that extends Classes through Extensions. Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Also, stereotype names should not clash with keyword names for the extended model element."/>
- </eAnnotations>
- <eOperations name="name_not_clash" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Stereotype names should not clash with keyword names for the extended model element.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Stereotype may only generalize or specialize another Stereotype.&#xD;&#xA;generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) "/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="createExtension" ordered="false" lowerBound="1" eType="#//Extension">
- <eParameters name="metaclass" ordered="false" lowerBound="1" eType="#//Class"/>
- <eParameters name="isRequired" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getProfile" ordered="false" eType="#//Profile"/>
- <eOperations name="getKeyword" ordered="false" lowerBound="1" eType="#//String"/>
- <eOperations name="getKeyword" ordered="false" lowerBound="1" eType="#//String">
- <eParameters name="localize" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="getExtendedMetaclasses" ordered="false" upperBound="-1" eType="#//Class"/>
- <eOperations name="getAllExtendedMetaclasses" ordered="false" upperBound="-1"
- eType="#//Class"/>
- <eOperations name="getDefinition" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
- <eOperations name="createIcon" ordered="false" lowerBound="1" eType="#//Image">
- <eParameters name="location" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="createIcon" ordered="false" lowerBound="1" eType="#//Image">
- <eParameters name="format" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="content" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="icon" ordered="false" upperBound="-1"
- eType="#//Image" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Stereotype can change the graphical appearance of the extended model element by using attached icons. When this association is not null, it references the location of the icon content to be displayed within diagrams presenting the extended model elements."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Image class provides the necessary information to display an Image in a diagram. Icons are typically handled through the Image class."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="content" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="format" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP.&#xD;&#xA;&#xD;&#xA;In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example &quot;SVG&quot; could instead be expressed as &quot;MIME: image/svg+xml&quot;."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of Profiles.&#xD;&#xA;&#xD;&#xA;A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package.&#xD;&#xA;&#xD;&#xA;A profile is a restricted form of a metamodel that must always be related to a reference metamodel, such as UML, as described below. A profile cannot be used without its reference metamodel, and defines a limited capability to extendmetaclasses of the reference metamodel. The extensions are defined as stereotypes that apply to existing metaclasses."/>
- </eAnnotations>
- <eOperations name="metaclass_reference_not_specialized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An element imported as a metaclassReference is not specialized or generalized in a Profile.&#xD;&#xA;self.metaclassReference.importedElement->&#xD;&#xA; select(c | c.oclIsKindOf(Classifier) and&#xD;&#xA; (c.generalization.namespace = self or&#xD;&#xA; (c.specialization.namespace = self) )->isEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="references_same_metamodel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel.&#xD;&#xA;self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())->&#xD;&#xA; union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="create" ordered="false" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
- <eParameters name="classifier" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="createOwnedStereotype" ordered="false" lowerBound="1" eType="#//Stereotype">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="isAbstract" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="isDefined" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eOperations name="define" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
- <eOperations name="getDefinition" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
- <eOperations name="getDefinition" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement">
- <eParameters name="namedElement" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eOperations name="getReferencedMetaclasses" ordered="false" upperBound="-1" eType="#//Class"/>
- <eOperations name="getReferencedMetamodels" ordered="false" upperBound="-1" eType="#//Model"/>
- <eOperations name="getOwnedExtensions" ordered="false" upperBound="-1" eType="#//Extension">
- <eParameters name="requiredOnly" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStereotype" ordered="false"
- upperBound="-1" eType="#//Stereotype" volatile="true" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Stereotypes that are owned by the Profile."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Package/packagedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="metaclassReference" ordered="false"
- upperBound="-1" eType="#//ElementImport">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a metaclass that may be extended."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/elementImport"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelReference" ordered="false"
- upperBound="-1" eType="#//PackageImport">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a package containing (directly or indirectly) metaclasses that may be extended."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/packageImport"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//Package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Model construct is defined as a Package. It contains a (hierarchical) set of elements that together describe the physical system being modeled. A Model may also contain a set of elements that represents the environment of the system, typically Actors, together with their interrelationships, such as Associations and Dependencies"/>
- </eAnnotations>
- <eOperations name="isMetamodel" ordered="false" lowerBound="1" eType="#//Boolean"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewpoint" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The name of the viewpoint that is expressed by a model (This name may refer to a profile definition)."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ParameterSet" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An parameter set acts as a complete set of inputs or outputs to a behavior, exclusive of other parameter sets on the behavior."/>
- </eAnnotations>
- <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a behavior has input parameters that are in a parameter set, then any inputs that are not in a parameter set must be streaming. Same for output parameters.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Two parameter sets cannot have exactly the same set of parameters.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Parameter" eOpposite="#//Parameter/parameterSet">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Parameters in the parameter set."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constraint that should be satisfied for the owner of the parameters in an input parameter set to start execution using the values provided for those parameters, or the owner of the parameters in an output parameter set to end execution providing the values for those parameters, if all preconditions and conditions on input parameter sets were satisfied."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="CallConcurrencyKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="CallConcurrencyKind is an enumeration with the following literals:&#xD;&#xA; - sequential = No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once.&#xD;&#xA; - guarded = Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks.&#xD;&#xA; - concurrent = Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently."/>
- </eAnnotations>
- <eLiterals name="sequential">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="No concurrency management mechanism is associated with the operation and, therefore, concurrency conflicts may occur. Instances that invoke a behavioral feature need to coordinate so that only one invocation to a target on any behavioral feature occurs at once."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="guarded" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Multiple invocations of a behavioral feature may occur simultaneously to one instance, but only one is allowed to commence. The others are blocked until the performance of the first behavioral feature is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="concurrent" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types.&#xD;&#xA;&#xD;&#xA;A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types.&#xD;&#xA;A data type is a type whose instances are identified only by their value. A DataType may contain attributes to support the modeling of structured data types.&#xD;&#xA;A typical use of data types would be to represent programming language primitive types or CORBA basic types. For example, integer and string types are often treated as data types.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
- eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Classifier/inherit"/>
- <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
- </contents>
- </eAnnotations>
- <eOperations name="createOwnedOperation" ordered="false" lowerBound="1" eType="#//Operation">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="parameterNames" ordered="false" upperBound="-1" eType="#//String"/>
- <eParameters name="parameterTypes" ordered="false" upperBound="-1" eType="#//Type"/>
- <eParameters name="returnType" ordered="false" eType="#//Type"/>
- </eOperations>
- <eOperations name="createOwnedAttribute" ordered="false" lowerBound="1" eType="#//Property">
- <eParameters name="name" ordered="false" eType="#//String"/>
- <eParameters name="type" ordered="false" eType="#//Type"/>
- <eParameters name="lower" ordered="false" lowerBound="1" eType="#//Integer"/>
- <eParameters name="upper" ordered="false" lowerBound="1" eType="#//UnlimitedNatural"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
- eType="#//Property" containment="true" eOpposite="#//Property/datatype">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Attributes owned by the DataType."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
- eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Operations owned by the DataType."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OperationTemplateParameter" eSuperTypes="#//TemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="OperationTemplateParameter is a template parameter where the parametered element is an Operation."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
- lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Operation/%duplicates%/templateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation for this template parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
- </contents>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier. Structural feature is an abstract metaclass.&#xD;&#xA;A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass.&#xA;By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="States whether the feature's value may be modified by a client."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="AggregationKind is an enumeration of the following literal values:&#xD;&#xA; - none = Indicates that the property has no aggregation.&#xD;&#xA; - shared = Indicates that the property has a shared aggregation.&#xD;&#xA; - composite = Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts)."/>
- </eAnnotations>
- <eLiterals name="none">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that the property has no aggregation."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="shared" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that the property has a shared aggregation."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="composite" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts)."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
- eSuperTypes="#//TemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ConnectableElementTemplateParameter is a template parameter where the parametered element is a ConnectableElement."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
- lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ConnectableElement/%duplicates%/templateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ConnectableElement for this template parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
- </contents>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ParameterDirectionKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ParameterDirectionKind is an enumeration of the following literal values:&#xD;&#xA; - in = Indicates that parameter values are passed into the behavioral element by the caller.&#xD;&#xA; - inout = Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element.&#xD;&#xA; - out = Indicates that parameter values are passed from a behavioral element out to the caller.&#xD;&#xA; - return = Indicates that parameter values are passed as return values from a behavioral element back to the caller."/>
- </eAnnotations>
- <eLiterals name="in">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that parameter values are passed into the behavioral element by the caller."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="inout" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="out" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that parameter values are passed from a behavioral element out to the caller."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="return" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Indicates that parameter values are passed as return values from a behavioral element back to the caller."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ParameterEffectKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters."/>
- </eAnnotations>
- <eLiterals name="create"/>
- <eLiterals name="read" value="1"/>
- <eLiterals name="update" value="2"/>
- <eLiterals name="delete" value="3"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CollaborationUse" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations.&#xD;&#xA;&#xD;&#xA;Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="every_role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The connectors in the classifier connect according to the connectors in the collaboration&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
- eType="#//Collaboration">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The collaboration which is used in this occurrence. The collaboration defines the cooperation between its roles which are mapped to properties of the classifier owning the collaboration use."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="roleBinding" ordered="false"
- upperBound="-1" eType="#//Dependency" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration. A connectable element may be bound to multiple roles in the same collaboration use (that is, it may play multiple roles).&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Collaboration" eSuperTypes="#//BehavioredClassifier #//StructuredClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A collaboration is represented as a kind of classifier and defines a set of cooperating entities to be played by instances (its roles), as well as a set of connectors that define communication paths between the participating instances. The cooperating entities are the properties of the collaboration.&#xD;&#xA;&#xD;&#xA;A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration, as well as the features required of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationRole" ordered="false"
- upperBound="-1" eType="#//ConnectableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="UseCase" eSuperTypes="#//BehavioredClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A UseCase is a kind of behaviored classifier that represents a declaration of an offered behavior. Each use case specifies some behavior, possibly including variants, that the subject can perform in collaboration with one or more actors. Use cases define the offered behavior of the subject without reference to its internal structure. These behaviors, involving&#xD;&#xA;interactions between the actor and the subject, may result in changes to the state of the subject and communications with its environment. A use case can include possible variations of its basic behavior, including exceptional behavior and error handling.&#xD;&#xA;&#xD;&#xA;The subject of a use case could be a physical system or any other element that may have behavior, such as a component, subsystem or class. Each use case specifies a unit of useful functionality that the subject provides to its users, i.e., a specific way of interacting with the subject. This functionality, which is initiated by an actor, must always be completed for the use case to complete. It is deemed complete if, after its execution, the subject will be in a state in which no further inputs or actions are expected and the use case can be initiated again or in an error state.&#xD;&#xA;&#xD;&#xA;Use cases can be used both for specification of the (external) requirements on a subject and for the specification of the functionality offered by a subject. Moreover, the use cases also state the requirements the specified subject poses on its environment by defining how they should interact with the subject so that it will be able to perform its services.&#xD;&#xA;&#xD;&#xA;The behavior of a use case can be described by a specification that is some kind of Behavior (through its ownedBehavior relationship), such as interactions, activities, and state machines, or by pre-conditions and post-conditions as well as by natural language text where appropriate. It may also be described indirectly through a Collaboration that uses the use case and its actors as the classifiers that type its parts. Which of these techniques to use depends on the nature of the use case behavior as well as on the intended reader. These descriptions can be combined.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A UseCase must have a name.&#xD;&#xA;self.name -> notEmpty ()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="UseCases can only be involved in binary Associations.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="UseCases can not have Associations to UseCases specifying the same subject.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="cannot_include_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A use case cannot include use cases that directly or indirectly include it.&#xD;&#xA;not self.allIncludedUseCases()->includes(self)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="allIncludedUseCases" ordered="false" upperBound="-1" eType="#//UseCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.&#xD;&#xA;result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="include" ordered="false"
- upperBound="-1" eType="#//Include" containment="true" eOpposite="#//Include/includingCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Include relationships owned by this use case."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extend" ordered="false"
- upperBound="-1" eType="#//Extend" containment="true" eOpposite="#//Extend/extension">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Extend relationships owned by this use case."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extensionPoint" ordered="false"
- upperBound="-1" eType="#//ExtensionPoint" containment="true" eOpposite="#//ExtensionPoint/useCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the ExtensionPoints owned by the use case."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false"
- upperBound="-1" eType="#//Classifier" eOpposite="#//Classifier/useCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the subjects to which this use case applies. The subject or its parts realize all the use cases that apply to this subject. Use cases need not be attached to any specific subject, however. The subject may, but need not, own the use cases that apply to it."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Include" eSuperTypes="#//NamedElement #//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Note that the included use case is not optional, and is always required for the including use case to execute correctly.&#xD;&#xA;&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="addition" ordered="false"
- lowerBound="1" eType="#//UseCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use case that is to be included.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="includingCase" ordered="false"
- lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/include">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use case which will include the addition and owns the include relationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Extend" eSuperTypes="#//NamedElement #//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This relationship specifies that the behavior of a use case may be extended by the behavior of another (usually supplementary) use case. The extension takes place at one or more specific extension points defined in the extended use case. Note, however, that the extended use case is defined independently of the extending use case and is meaningful independently of the extending use case. On the other hand, the extending use case typically defines behavior that may not necessarily be meaningful by itself. Instead, the extending use case defines a set of modular behavior increments that augment an execution of the extended use case under specific conditions.&#xD;&#xA;&#xD;&#xA;Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended.&#xD;&#xA;&#xD;&#xA;It is a kind of DirectedRelationship, such that the source is the extending use case and the destination is the extended use case. It is also a kind of NamedElement so that it can have a name in the context of its owning use case. The extend relationship itself is owned by the extending use case.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="extension_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The extension points referenced by the extend relationship must belong to the use case that is being extended.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extendedCase" ordered="false"
- lowerBound="1" eType="#//UseCase">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use case that is being extended."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
- eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extensionLocation" lowerBound="1"
- upperBound="-1" eType="#//ExtensionPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ordered list of extension points belonging to the extended use case, specifying where the respective behavioral fragments of the extending use case are to be inserted. The first fragment in the extending use case is associated with the first extension point in the list, the second fragment with the second point, and so on. (Note that, in most practical cases, the extending use case has just a single behavior fragment, so that the list of extension points is trivial.)&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
- lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/extend">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use case that represents the extension and owns the extend relationship."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExtensionPoint" eSuperTypes="#//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ExtensionPoint is a feature of a use case that identifies a point where the behavior of a use case can be augmented with elements of another (extending) use case."/>
- </eAnnotations>
- <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ExtensionPoint must have a name.&#xD;&#xA;self.name->notEmpty ()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
- lowerBound="1" eType="#//UseCase" eOpposite="#//UseCase/extensionPoint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the use case that owns this extension point."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RedefinableTemplateSignature" eSuperTypes="#//RedefinableElement #//TemplateSignature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="RedefinableTemplateSignature specializes both TemplateSignature and RedefinableElement in order to allow the addition of new formal template parameters in the context of a specializing template Classifier."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
- lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isConsistentWith() specifies, for any two RedefinableTemplateSignatures in a context in which redefinition is possible, whether redefinition would be logically consistent. A redefining template signature is always consistent with a redefined template signature, since redefinition only adds new formal parameters.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = redefinee.oclIsKindOf(RedefineableTemplateSignature)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
- <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
- </contents>
- </eAnnotations>
- <eOperations name="inherited_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The inherited parameters are the parameters of the extended template signature.&#xD;&#xA;if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getInheritedParameters" ordered="false" upperBound="-1" eType="#//TemplateParameter"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="extendedSignature" ordered="false"
- upperBound="-1" eType="#//RedefinableTemplateSignature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The template signature that is extended by this template signature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedParameter" ordered="false"
- upperBound="-1" eType="#//TemplateParameter" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The formal template parameters of the extendedSignature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//TemplateSignature/parameter"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
- lowerBound="1" eType="#//Classifier" changeable="false" volatile="true" transient="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier that owns this template signature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ClassifierTemplateParameter" eSuperTypes="#//TemplateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ClassifierTemplateParameter is a template parameter where the parametered element is a Classifier in its capacity of being a kind of ParameterableElement."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
- lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Classifier/%duplicates%/templateParameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameterable classifier for this template parameter."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
- </contents>
- </eAnnotations>
- <eOperations name="has_constraining_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If &quot;allowSubstitutable&quot; is true, then there must be a constrainingClassifier.&#xD;&#xA;allowSubstitutable implies constrainingClassifier->notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="allowSubstitutable" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="defaultClassifier" ordered="false"
- eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier that is used by default if no argument is provided during template binding. If this property is empty, then there is no default."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="constrainingClassifier"
- ordered="false" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier that constrains the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted, otherwise it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StringExpression" eSuperTypes="#//Expression #//TemplateableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="StringExpression is a specialization of the general Expression metaclass which adds the ability to contain sub-expressions and whose operands are exclusively LiteralStrings."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query stringValue() returns the string that concatenates, in order, all the component string literals of all the subexpressions that are part of the StringExpression.&#xD;&#xA;&#xD;&#xA;result = if subExpression->notEmpty()&#xA;then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue()))&#xA;else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- </eAnnotations>
- <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All the operands of a StringExpression must be LiteralStrings&#xD;&#xA;operand->forAll (op | op.oclIsKindOf (LiteralString))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to&#xA;define a collating sequence between operands and subexpressions).&#xA;&#xD;&#xA;if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subExpression" ordered="false"
- upperBound="-1" eType="#//StringExpression" containment="true" eOpposite="#//StringExpression/owningExpression">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The StringExpressions that constitute this StringExpression."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningExpression" ordered="false"
- eType="#//StringExpression" eOpposite="#//StringExpression/subExpression">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The string expression of which this expression is a substring."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xD;&#xA;An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="symbol" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The symbol associated with the node in the expression tree."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies a sequence of operands."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both.&#xD;&#xA;&#xD;&#xA;This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel.&#xD;&#xA;&#xD;&#xA;Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed.&#xD;&#xA;A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both. This mechanism should be used when elements defined in different packages have the same name and are intended to represent the same concept. Most often it is used to provide different definitions of a given concept for different purposes, starting from a common base definition. A given base concept is extended in increments, with each increment defined in a separate merged package. By selecting which increments to merge, it is possible to obtain a custom definition of a concept for a specific end. Package merge is particularly useful in meta-modeling and is extensively used in the definition of the UML metamodel.&#xD;&#xA;&#xD;&#xA;Conceptually, a package merge can be viewed as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages involved in the merge. In terms of model semantics, there is no difference between a model with explicit package merges, and a model in which all the merges have been performed.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" ordered="false"
- lowerBound="1" eType="#//Package">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Package that is to be merged with the receiving package of the PackageMerge."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="receivingPackage" ordered="false"
- lowerBound="1" eType="#//Package" eOpposite="#//Package/packageMerge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//DirectedRelationship">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ProfileApplication is a kind of PackageImport that adds the capability to state that a Profile is applied to a Package."/>
- </eAnnotations>
- <eOperations name="getAppliedDefinition" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
- <eOperations name="getAppliedDefinition" ordered="false" eType="ecore:EClass ../../../plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement">
- <eParameters name="namedElement" ordered="false" lowerBound="1" eType="#//NamedElement"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="appliedProfile" ordered="false"
- lowerBound="1" eType="#//Profile">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Profiles that are applied to a Package through this ProfileApplication."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="applyingPackage" ordered="false"
- lowerBound="1" eType="#//Package" eOpposite="#//Package/profileApplication">
- <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//DataType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals.&#xD;&#xA;It is possible to extend the set of applicable enumeration literals in other packages or profiles.&#xD;&#xA;&#xD;&#xA;Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals.&#xD;&#xA;It is possible to extend the set of applicable enumeration literals in other packages or profiles.&#xD;&#xA;"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiteral" upperBound="-1"
- eType="#//EnumerationLiteral" containment="true" eOpposite="#//EnumerationLiteral/enumeration">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered collection of literals for the enumeration.&#xD;&#xA;The ordered set of literals for this Enumeration."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteral" eSuperTypes="#//InstanceSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An enumeration literal is a value of an enumeration.&#xD;&#xA;An enumeration literal is a user-defined data value for an enumeration."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" ordered="false"
- eType="#//Enumeration" eOpposite="#//Enumeration/ownedLiteral">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The enumeration that this literal belongs to.&#xD;&#xA;The Enumeration that this EnumerationLiteral is a member of."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//DeploymentTarget #//PackageableElement #//DeployedArtifact">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity.&#xD;&#xA;The description may include:&#xD;&#xA;&#xD;&#xA;- Classification of the entity by one or more classifiers of which the entity is an instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity.&#xD;&#xA;- The kind of instance, based on its classifier or classifiers -- for example, an instance specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association.&#xD;&#xA;- Specification of values of structural features of the entity. Not all structural features of all classifiers of the instance specification need be represented by slots, in which case the instance specification is a partial description.&#xD;&#xA;- Specification of how to compute, derive or construct the instance (optional).&#xD;&#xA;&#xD;&#xA;InstanceSpecification is a concrete class.&#xD;&#xA;&#xD;&#xA;In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact."/>
- </eAnnotations>
- <eOperations name="defining_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.&#xD;&#xA;slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.&#xD;&#xA;classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InstanceSpecification can be a DeploymentTarget if it is the instance specification of a Node and functions as a part in the internal structure of an encompassing Node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
- upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="slot" ordered="false" upperBound="-1"
- eType="#//Slot" containment="true" eOpposite="#//Slot/owningInstance">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Slot" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A slot is owned by an instance specification. It specifies the value or values for its defining feature, which must be a structural feature of a classifier of the instance specification owning the slot."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="definingFeature" ordered="false"
- lowerBound="1" eType="#//StructuralFeature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The structural feature that specifies the values that may be held by the slot."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningInstance" ordered="false"
- lowerBound="1" eType="#//InstanceSpecification" eOpposite="#//InstanceSpecification/slot">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The instance specification that owns this slot."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A primitive type defines a predefined data type, without any relevant substructure (i.e. it has no parts in the context of the UML). A primitive datatype may have an algebra and operations defined out of UML, for example, mathematically."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralSpecification" abstract="true"
- eSuperTypes="#//ValueSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralInteger" eSuperTypes="#//LiteralSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal integer contains an Integer-valued attribute."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="integerValue" ordered="false" lowerBound="1"
- eType="#//Integer">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query integerValue() gives the value.&#xD;&#xA;result = value"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/integerValue"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
- lowerBound="1" eType="#//Integer" defaultValueLiteral="0">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specified Integer value."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralString" eSuperTypes="#//LiteralSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal string contains a String-valued attribute."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query stringValue() gives the value.&#xD;&#xA;result = value"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specified String value."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralBoolean" eSuperTypes="#//LiteralSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal boolean contains a Boolean-valued attribute."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="booleanValue" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query booleanValue() gives the value.&#xD;&#xA;result = value"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/booleanValue"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specified Boolean value."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralNull" eSuperTypes="#//LiteralSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal null is used to represent null, i.e., the absence of a value."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="isNull" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isNull() returns true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isNull"/>
- </contents>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InstanceValue" eSuperTypes="#//ValueSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An instance value specifies the value modeled by an instance specification."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="instance" ordered="false"
- lowerBound="1" eType="#//InstanceSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The instance that is the specified value."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LiteralUnlimitedNatural" eSuperTypes="#//LiteralSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A literal unlimited natural contains a UnlimitedNatural-valued attribute."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
- eType="#//String">
- <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
- eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
- </contents>
- <contents xsi:type="ecore:EOperation" name="unlimitedValue" ordered="false"
- lowerBound="1" eType="#//UnlimitedNatural">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The query unlimitedValue() gives the value.&#xD;&#xA;result = value"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ValueSpecification/unlimitedValue"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
- lowerBound="1" eType="#//UnlimitedNatural" defaultValueLiteral="0">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specified UnlimitedNatural value."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior" eSuperTypes="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An behavior with implementation-specific semantics."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" upperBound="-1" eType="#//String"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the behavior in one or more languages."/>
- </eAnnotations>
- <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
- <details key="kind" value="element"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Languages the body strings use in the same order as the body strings."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="FunctionBehavior" eSuperTypes="#//OpaqueBehavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A function behavior is an opaque behavior that does not access or modify any objects or other external data."/>
- </eAnnotations>
- <eOperations name="one_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A function behavior has at least one output parameter.&#xD;&#xA;self.ownedParameters->&#xD;&#xA; select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="types_of_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The types of parameters are all data types, which may not nest anything but other datatypes.&#xD;&#xA;def: hasAllDataTypeAttributes(d : DataType) : Boolean =&#xD;&#xA; d.ownedAttribute->forAll(a |&#xD;&#xA; a.type.oclIsTypeOf(DataType) and&#xD;&#xA; hasAllDataTypeAttributes(a.type))&#xD;&#xA;self.ownedParameters->forAll(p | p.type.notEmpty() and&#xD;&#xA; p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OpaqueAction" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An action with implementation-specific semantics."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" upperBound="-1" eType="#//String"
- unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the action in one or more languages."/>
- </eAnnotations>
- <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
- <details key="kind" value="element"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
- eType="#//String" unsettable="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Languages the body strings use, in the same order as the body strings"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputValue" ordered="false"
- upperBound="-1" eType="#//InputPin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Provides input to the action."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outputValue" ordered="false"
- upperBound="-1" eType="#//OutputPin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Takes output from the action."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Action" abstract="true" eSuperTypes="#//ExecutableNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.&#xD;&#xA;An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action.&#xD;&#xA;An action may have sets of incoming and outgoing activity edges that specify control flow and data flow from and to other nodes. An action will not begin execution until all of its input conditions are satisfied. The completion of the execution of an action may enable the execution of a set of successor nodes and actions that take their inputs from the outputs of the action. In CompleteActivities, action is extended to have pre- and postconditions."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="output" upperBound="-1"
- eType="#//OutputPin" changeable="false" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered set of output pins connected to the Action. The action places its results onto pins in this set."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="input" upperBound="-1"
- eType="#//InputPin" changeable="false" transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered set of input pins connected to the Action. These are among the total set of inputs."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
- eType="#//Classifier" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier that owns the behavior of which this action is a part."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="localPrecondition" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constraint that must be satisfied when execution is started."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="localPostcondition" ordered="false"
- upperBound="-1" eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constraint that must be satisfied when executed is completed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExecutableNode" abstract="true" eSuperTypes="#//ActivityNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="handler" ordered="false"
- upperBound="-1" eType="#//ExceptionHandler" containment="true" eOpposite="#//ExceptionHandler/protectedNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityNode" abstract="true" eSuperTypes="#//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be replaced in generalization.&#xD;&#xA;An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes.&#xD;&#xA;An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes. Nodes can be contained in interruptible regions."/>
- </eAnnotations>
- <eOperations name="owned_structured_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity nodes may be owned by at most one structured node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity nodes can only be owned by activities or groups.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
- eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Structured activity node containing the node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
- eType="#//Activity" eOpposite="#//Activity/node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity containing the node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
- upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/source">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges that have the node as source."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
- upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/target">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges that have the node as target."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
- upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Partitions containing the node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
- ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Interruptible regions containing the node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
- upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
- derived="true" eOpposite="#//ActivityGroup/containedNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedNode" ordered="false"
- upperBound="-1" eType="#//ActivityNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Inherited nodes replaced by this node in a specialization of the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins when merged with CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution.&#xD;&#xA;&#xD;&#xA;Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of &quot;atomicity&quot;, which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results.&#xD;&#xA;&#xD;&#xA;A structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting. It may have control edges connected to it, and pins in CompleteStructuredActivities. The execution of any embedded actions may not begin until the structured activity node has received its object and control tokens. The availability of output tokens from the structured activity node does not occur until all embedded actions have completed execution.&#xD;&#xA;&#xD;&#xA;Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.&#xD;&#xA;&#xD;&#xA;Note - Any required isolation may be achieved using a locking mechanisms, or it may simply sequentialize execution to avoid concurrency conflicts. Isolation is different from the property of &quot;atomicity&quot;, which is the guarantee that a group of actions either all complete successfully or have no effect at all. Atomicity generally requires a rollback mechanism to prevent committing partial results.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="activity" ordered="false" eType="#//Activity"
- volatile="true" derived="true" eOpposite="#//Activity/structuredNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity immediately containing the node."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//ActivityNode/activity #//ActivityGroup/inActivity"/>
- </contents>
- </eAnnotations>
- <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The edges owned by a structured node must have source and target nodes in the structured node, and vice versa.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
- upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/scope">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A variable defined in the scope of the structured activity node. It has no value and may not be accessed"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
- eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/inStructuredNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges immediately contained in the structured node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="mustIsolate" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, then the actions in the node execute in isolation from actions outside the node."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
- eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/inStructuredNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Nodes immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group.&#xD;&#xA;They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All nodes and edges of the group must be in the same activity as the group.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="No node or edge in a group may be contained by its subgroups or its containing groups, transitively.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Groups may only be owned by activities or groups.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
- upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
- derived="true" eOpposite="#//ActivityGroup/superGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Groups immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
- eType="#//ActivityGroup" changeable="false" transient="true" derived="true"
- eOpposite="#//ActivityGroup/subgroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Group immediately containing the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
- eType="#//Activity" eOpposite="#//Activity/group">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity containing the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
- upperBound="-1" eType="#//ActivityEdge" changeable="false" transient="true"
- derived="true" eOpposite="#//ActivityEdge/inGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
- upperBound="-1" eType="#//ActivityNode" changeable="false" transient="true"
- derived="true" eOpposite="#//ActivityNode/inGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Nodes immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Activity" eSuperTypes="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity specifies the coordination of executions of subordinate behaviors, using a control and data flow model. The subordinate behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because objects and data become available, or because events occur external to the flow. The flow of execution is modeled as activity nodes connected by activity edges. A node can be the execution of a subordinate behavior, such as an arithmetic computation, a call to an operation, or manipulation of object contents. Activity nodes also include flow-of-control constructs, such as synchronization, decision, and concurrency control. Activities may form invocation hierarchies invoking other activities, ultimately resolving to individual actions. In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. &#xD;&#xA;&#xD;&#xA;Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow. In this context, events often originate from inside the system, such as the finishing of a task, but also from outside the system, such as a customer call. Activities can also be used for information system modeling to specify system level processes. Activities may contain actions of various kinds:&#xD;&#xA;- occurrences of primitive functions, such as arithmetic functions.&#xD;&#xA;- invocations of behavior, such as activities.&#xD;&#xA;- communication actions, such as sending of signals.&#xD;&#xA;- manipulations of objects, such as reading or writing attributes or associations.&#xD;&#xA;&#xD;&#xA;Actions have no further decomposition in the activity containing them. However, the execution of a single action may induce the execution of many other actions. For example, a call action invokes an operation which is implemented by an activity containing actions that execute before the call action completes."/>
- </eAnnotations>
- <eOperations name="no_supergroups" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The groups of an activity have no supergroups.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The nodes of the activity must include one ActivityParameterNode for each parameter.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="autonomous" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
- upperBound="-1" eType="#//StructuredActivityNode" changeable="false" volatile="true"
- transient="true" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Top-level structured nodes in the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Activity/node #//Activity/group"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
- upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/activityScope">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Top-level variables in the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
- eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/activity">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Nodes coordinated by the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes)."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
- eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/activity">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges expressing flow between nodes of the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="partition" ordered="false"
- upperBound="-1" eType="#//ActivityPartition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Top-level partitions in the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Activity/group"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleExecution" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, all invocations of the activity are handled by the same execution."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
- upperBound="-1" eType="#//ActivityGroup" containment="true" eOpposite="#//ActivityGroup/inActivity">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Top-level groups in the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A variable specifies data storage shared by the actions within a group. There are actions to write and read variables. These actions are treated as side effecting actions, similar to the actions to write and read object attributes and associations. There are no sequencing constraints among actions that access the same variable. Such actions must be explicitly coordinated by control flows or other constraints.&#xD;&#xA;&#xD;&#xA;Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable.&#xD;&#xA;&#xD;&#xA;A variable is considered a connectable element."/>
- </eAnnotations>
- <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A variable is owned by a StructuredNode or Activity, but not both.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="isAccessibleBy" ordered="false" lowerBound="1" eType="#//Boolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.&#xD;&#xA;&#xD;&#xA;result = true"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="a" ordered="false" lowerBound="1" eType="#//Action"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="scope" ordered="false"
- eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/variable">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A structured activity node that owns the variable."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="activityScope" ordered="false"
- eType="#//Activity" eOpposite="#//Activity/variable">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity that owns the variable."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" abstract="true" eSuperTypes="#//RedefinableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ActivityEdge is an abstract class for the connections along which tokens flow between activity nodes. It covers control and data flow edges. Activity edges can control token flow."/>
- </eAnnotations>
- <eOperations name="source_and_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The source and target of an edge must be in the same activity as the edge.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity edges may be owned only by activities or groups.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="structured_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity edges may be owned by at most one structured node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
- lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/outgoing">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Node from which tokens are taken when they traverse the edge."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/incoming">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Node to which tokens are put when they traverse the edge."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedEdge" ordered="false"
- upperBound="-1" eType="#//ActivityEdge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Inherited edges replaced by this edge in a specialization of the activity."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
- upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/edge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Partitions containing the edge."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specification evaluated at runtime to determine if the edge can be traversed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="weight" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Number of tokens consumed from the source node on each traversal."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interrupts" ordered="false"
- eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/interruptingEdge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Region that the edge can interrupt."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
- eType="#//StructuredActivityNode" eOpposite="#//StructuredActivityNode/edge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Structured activity node containing the edge."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
- upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
- derived="true" eOpposite="#//ActivityGroup/containedEdge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivityGroup.&#xD;&#xA;Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group."/>
- </eAnnotations>
- <eAnnotations source="union"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
- eType="#//Activity" eOpposite="#//Activity/edge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity containing the edge."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityPartition" eSuperTypes="#//NamedElement #//ActivityGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Partitions divide the nodes and edges to constrain and show a view of the contained nodes. Partitions can share contents. They often correspond to organizational units in a business model. They may be used to allocate characteristics or resources among the nodes of an activity."/>
- </eAnnotations>
- <eOperations name="dimension_not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A partition with isDimension = true may not be contained by another partition.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="represents_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="represents_part_and_is_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If a partition represents a part and is contained by another partition, then the part must be of a classifier represented by the containing partition, or of a classifier that is the type of a part representing the containing partition.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDimension" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the partition groups other partitions along a dimension."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isExternal" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the partition represents an entity to which the partitioning structure does not apply."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
- eType="#//ActivityNode" eOpposite="#//ActivityNode/inPartition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Nodes immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="subpartition" ordered="false"
- upperBound="-1" eType="#//ActivityPartition" containment="true" eOpposite="#//ActivityPartition/superPartition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/subgroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="superPartition" ordered="false"
- eType="#//ActivityPartition" eOpposite="#//ActivityPartition/subpartition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Partition immediately containing the partition."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/superGroup"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
- eType="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An element constraining behaviors invoked by nodes in the partition."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
- eType="#//ActivityEdge" eOpposite="#//ActivityEdge/inPartition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Edges immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InterruptibleActivityRegion" eSuperTypes="#//ActivityGroup">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An interruptible region contains activity nodes. When a token leaves an interruptible region via edges designated by the region as interrupting edges, all tokens and behaviors in the region are terminated."/>
- </eAnnotations>
- <eOperations name="interrupting_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
- eType="#//ActivityNode" eOpposite="#//ActivityNode/inInterruptibleRegion">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Nodes immediately contained in the group."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interruptingEdge" ordered="false"
- upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/interrupts">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The edges leaving the region that will abort other tokens flowing in the region."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExceptionHandler" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node."/>
- </eAnnotations>
- <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The exception handler and its input object node are not the source or target of any edge.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The result pins of the exception handler body must correspond in number and types to the result pins of the protected node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The handler body has one input, and that input is the same as the exception input.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="handlerBody" ordered="false"
- lowerBound="1" eType="#//ExecutableNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A node that is executed if the handler satisfies an uncaught exception."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionInput" ordered="false"
- lowerBound="1" eType="#//ObjectNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An object node within the handler body. When the handler catches an exception, the exception token is placed in this node, causing the body to execute."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionType" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The kind of instances that the handler catches. If an exception occurs whose type is any of the classifiers in the set, the handler catches the exception and executes its body."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="protectedNode" ordered="false"
- lowerBound="1" eType="#//ExecutableNode" eOpposite="#//ExecutableNode/handler">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The node protected by the handler. The handler is examined if an exception propagates to the outside of the node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section.&#xD;&#xA;An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. Object nodes can be used in a variety of ways, depending on where objects are flowing from and to, as described in the semantics section.&#xD;&#xA;Complete object nodes add support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="All edges coming into or going out of object nodes must be object flow edges.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Object nodes are not unique typed elements&#xD;&#xA;isUnique = false"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="selection_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordering" ordered="false"
- lowerBound="1" eType="#//ObjectNodeOrderingKind" defaultValueLiteral="FIFO">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isControlType" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the type of the object node is to be treated as control."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inState" ordered="false"
- upperBound="-1" eType="#//State">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The required states of the object available at this point in the activity."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="selection" ordered="false"
- eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Selects tokens for outgoing edges."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="ObjectNodeOrderingKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ObjectNodeOrderingKind is an enumeration indicating queuing order within a node."/>
- </eAnnotations>
- <eLiterals name="unordered"/>
- <eLiterals name="ordered" value="1"/>
- <eLiterals name="LIFO" value="2"/>
- <eLiterals name="FIFO" value="3"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OutputPin" eSuperTypes="#//Pin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An output pin is a pin that holds output values produced by an action."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Pin" eSuperTypes="#//ObjectNode #//MultiplicityElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.&#xD;&#xA;A pin is an object node for inputs and outputs to actions."/>
- </eAnnotations>
- <eOperations name="control_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Control pins have a control type&#xD;&#xA;isControl implies isControlType"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isControl" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the pins provide data to the actions, or just controls when it executes it."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InputPin" eSuperTypes="#//Pin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An input pin is a pin that holds input values to be consumed by an action."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ValuePin" eSuperTypes="#//InputPin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A value pin is an input pin that provides a value by evaluating a value specification."/>
- </eAnnotations>
- <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of value specification must be compatible with the type of the value pin.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Value that the pin will provide."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CallAction" abstract="true" eSuperTypes="#//InvocationAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="CallAction is an abstract class for actions that invoke behavior and receive return values."/>
- </eAnnotations>
- <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only synchronous call actions can have result pins.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSynchronous" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If true, the call is synchronous and the caller waits for completion of the invoked behavior.&#xD;&#xA;If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
- eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A list of output pins where the results of performing the invocation are placed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InvocationAction" abstract="true" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Invocation is an abstract class for the various actions that invoke behavior.&#xD;&#xA;In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object."/>
- </eAnnotations>
- <eOperations name="on_port_receiver" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The onPort must be a port on the receiver object.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
- eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specification of the ordered set of argument values that appears during execution."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="onPort" ordered="false"
- eType="#//Port">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SendSignalAction" eSuperTypes="#//InvocationAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="SendSignalAction is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use SendObjectAction."/>
- </eAnnotations>
- <eOperations name="number_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number and order of argument pins must be the same as the number and order of attributes in the signal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The target object to which the signal is sent."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
- lowerBound="1" eType="#//Signal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of signal transmitted to the target object."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CallOperationAction" eSuperTypes="#//CallAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//CallAction/type_ordering_multiplicity"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="result_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the target pin must be the same as the type that owns the operation.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
- lowerBound="1" eType="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation to be invoked by the action execution."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CallBehaviorAction" eSuperTypes="#//CallAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous. In particular, the invoked behavior may be an activity."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//CallAction/type_ordering_multiplicity"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="result_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
- lowerBound="1" eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The invoked behavior. It must be capable of accepting and returning control."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SequenceNode" eSuperTypes="#//StructuredActivityNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A sequence node is a structured activity node that executes its actions in order."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="executableNode" upperBound="-1"
- eType="#//ExecutableNode" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ordered set of executable nodes."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StructuredActivityNode/node"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Usage" eSuperTypes="#//Dependency">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a Usage is a Dependency in which the client requires the presence of the supplier.&#xD;&#xA;"/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ControlNode" abstract="true" eSuperTypes="#//ActivityNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A control node is an activity node used to coordinate the flows between other nodes. It covers initial node, final node and its children, fork node, join node, decision node, and merge node."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ControlFlow" eSuperTypes="#//ActivityEdge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Objects and data cannot pass along a control flow edge."/>
- </eAnnotations>
- <eOperations name="object_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Control flows may not have object nodes at either end, except for object nodes with control type.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InitialNode" eSuperTypes="#//ControlNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity may have more than one initial node."/>
- </eAnnotations>
- <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An initial node has no incoming edges.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="control_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Only control edges can have initial nodes as source.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityParameterNode" eSuperTypes="#//ObjectNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters."/>
- </eAnnotations>
- <eOperations name="has_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity parameter nodes must have parameters from the containing activity.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of an activity parameter node is the same as the type of its parameter.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
- lowerBound="1" eType="#//Parameter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The parameter the object node will be accepting or providing values for."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Message" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Message is a NamedElement that defines a particular communication between Lifelines of an Interaction. A communication can be e.g. raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching ExecutionSpecification, but also the sender and the receiver. A Message associates normally two OccurrenceSpecifications - one sending OccurrenceSpecification and one receiving OccurrenceSpecification.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="sending_receiving_message_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the sending MessageEvent and the receiving MessageEvent of the same Message are on the same Lifeline, the sending MessageEvent must be ordered before the receiving MessageEvent.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="signature_refer_to" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Arguments of a Message must only be:&#xA;i) attributes of the sending lifeline&#xA;ii) constants&#xA;iii) symbolic values (which are wildcard values representing any legal value)&#xA;iv) explicit parameters of the enclosing Interaction&#xA;v) attributes of the class owning the Interaction&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="cannot_cross_boundaries" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Messages cannot cross bounderies of CombinedFragments or their operands.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="getMessageKind" ordered="false" lowerBound="1" eType="#//MessageKind"/>
- <eOperations name="getSignature" ordered="false" eType="#//NamedElement"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageKind" ordered="false"
- lowerBound="1" eType="#//MessageKind" changeable="false" volatile="true" transient="true"
- defaultValueLiteral="unknown" derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The derived kind of the Message (complete, lost, found or unknown)"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageSort" ordered="false"
- lowerBound="1" eType="#//MessageSort" defaultValueLiteral="synchCall">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The sort of communication reflected by the Message"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="receiveEvent" ordered="false"
- eType="#//MessageEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Receiving of the Message"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="sendEvent" ordered="false"
- eType="#//MessageEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Sending of the Message."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="connector" ordered="false"
- eType="#//Connector">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Connector on which this Message is sent."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
- lowerBound="1" eType="#//Interaction" eOpposite="#//Interaction/message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The enclosing Interaction owning the Message"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The arguments of the Message"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
- eType="#//NamedElement" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The definition of the type or signature of the Message (depending on its kind). The associated named element is derived from the message end that constitutes the sending or receiving message event. If both a sending event and a receiving message event are present, the signature is obtained from the sending event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="MessageKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="MessageKind is an enumeration of the following values:&#xD;&#xA; - complete = sendEvent and receiveEvent are present&#xD;&#xA; - lost = sendEvent present and receiveEvent absent&#xD;&#xA; - found = sendEvent absent and receiveEvent present&#xD;&#xA; - unknown = sendEvent and receiveEvent absent (should not appear)"/>
- </eAnnotations>
- <eLiterals name="complete">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="sendEvent and receiveEvent are present"/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="lost" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="sendEvent present and receiveEvent absent"/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="found" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="sendEvent absent and receiveEvent present"/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="unknown" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="sendEvent and receiveEvent absent (should not appear)"/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="MessageSort">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="MessageSort is an enumeration of the following values:&#xD;&#xA; - synchCall = the message was generated by a synchronous call to an operation&#xD;&#xA; - asynchCall = the message was generated by an asynchronous call to an operation; i.e., a CallAction for which isSynchronous is false&#xD;&#xA; - asynchSignal = the message was generated by an asynchronous send action&#xD;&#xA; - createMessage = the message designating the creation of another lifeline object&#xD;&#xA; - deleteMessage = the message designating the termination of anther lifeline&#xD;&#xA; - reply = the message is a reply message to an operation call"/>
- </eAnnotations>
- <eLiterals name="synchCall">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message was generated by a synchronous call to an operation."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="asynchCall" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message was generated by an asynchronous call to an operation; i.e., a CallAction with isSynchronous&#xD;&#xA;= false.&#xD;&#xA;"/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="asynchSignal" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message was generated by an asynchronous send action."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="createMessage" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message designating the creation of another lifeline object."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="deleteMessage" value="4">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message designating the termination of another lifeline."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="reply" value="5">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message is a reply message to an operation call."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MessageEnd" abstract="true" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
- eType="#//Message">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a Message."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Interaction" eSuperTypes="#//Behavior #//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An interaction is a unit of behavior that focuses on the observable exchange of information between ConnectableElements. An Interaction is a specialization of InteractionFragment and of Behavior."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="lifeline" ordered="false"
- upperBound="-1" eType="#//Lifeline" containment="true" eOpposite="#//Lifeline/interaction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the participants in this Interaction."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
- eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingInteraction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The ordered set of fragments in the Interaction."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
- upperBound="-1" eType="#//Action" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Actions owned by the Interaction."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="formalGate" ordered="false"
- upperBound="-1" eType="#//Gate" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
- upperBound="-1" eType="#//Message" containment="true" eOpposite="#//Message/interaction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Messages contained in this Interaction."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InteractionFragment" abstract="true"
- eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="InteractionFragment is an abstract notion of the most general interaction unit. An interaction fragment is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. InteractionFragment is an abstract class and a specialization of NamedElement."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="covered" ordered="false"
- upperBound="-1" eType="#//Lifeline" eOpposite="#//Lifeline/coveredBy">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Lifelines that the InteractionFragment involves."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="generalOrdering" ordered="false"
- upperBound="-1" eType="#//GeneralOrdering" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The general ordering relationships contained in this fragment."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingInteraction" ordered="false"
- eType="#//Interaction" eOpposite="#//Interaction/fragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Interaction enclosing this InteractionFragment."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingOperand" ordered="false"
- eType="#//InteractionOperand" eOpposite="#//InteractionOperand/fragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operand enclosing this InteractionFragment (they may nest recursively)"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Lifeline" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement. If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline. If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen.&#xD;&#xA;A lifeline represents an individual participant in the Interaction. While Parts and StructuralFeatures may have multiplicity greater than 1, Lifelines represent only one interacting entity. Lifeline is a specialization of NamedElement.&#xD;&#xA;&#xD;&#xA;If the referenced ConnectableElement is multivalued (i.e. has a multiplicity > 1), then the Lifeline may have an expression (the 'selector') that specifies which particular part is represented by this Lifeline.&#xD;&#xA;&#xD;&#xA;If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="interaction_uses_share_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The selector for a Lifeline must only be specified if the referenced Part is multivalued.&#xD;&#xA;(self.selector->isEmpty() implies not self.represents.isMultivalued()) or&#xA;(not self.selector->isEmpty() implies self.represents.isMultivalued())&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline.&#xD;&#xA;if (represents->notEmpty()) then&#xA;(if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued())&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
- eType="#//ConnectableElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the ConnectableElement within the classifier that contains the enclosing interaction."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
- lowerBound="1" eType="#//Interaction" eOpposite="#//Interaction/lifeline">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Interaction enclosing this Lifeline."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="selector" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" ordered="false"
- eType="#//PartDecomposition">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Interaction that represents the decomposition."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="coveredBy" ordered="false"
- upperBound="-1" eType="#//InteractionFragment" eOpposite="#//InteractionFragment/covered">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the InteractionFragments in which this Lifeline takes part."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PartDecomposition" eSuperTypes="#//InteractionUse">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction.&#xD;&#xA;&#xD;&#xA;A Lifeline has a class associated as the type of the ConnectableElement that the Lifeline represents. That class may have an internal structure and the PartDecomposition is an Interaction that describes the behavior of that internal structure relative to the Interaction where the decomposition is referenced.&#xD;&#xA;&#xD;&#xA;A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="assume" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Within X there is a sequence of constructs along L (such constructs are CombinedFragments, InteractionUse and (plain) OccurrenceSpecifications). Then a corresponding sequence of constructs must appear within D, matched one-to-one in the same order.&#xD;&#xA;&#xD;&#xA;i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D&#xD;&#xA;ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D.&#xD;&#xA;iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an&#xD;&#xA;InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InteractionUse" eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.&#xD;&#xA;&#xD;&#xA;It is common to want to share portions of an interaction between several other interactions. An InteractionUse allows multiple interactions to reference an interaction that represents a common portion of their specification.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="arguments_correspond_to_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The arguments of the InteractionUse must correspond to parameters of the referred Interaction&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="refersTo" ordered="false"
- lowerBound="1" eType="#//Interaction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Refers to the Interaction that defines its meaning"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="actualGate" ordered="false"
- upperBound="-1" eType="#//Gate" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The actual gates of the InteractionUse"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
- eType="#//Action" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The actual arguments of the Interaction"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Gate" eSuperTypes="#//MessageEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gate is a specialization of MessageEnd. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments."/>
- </eAnnotations>
- <eOperations name="messages_actual_gate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message leading to/from an actualGate of an InteractionUse must correspond to the message leading from/to the formalGate with the same name of the Interaction referenced by the InteractionUse.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="messages_combined_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="GeneralOrdering" eSuperTypes="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A GeneralOrdering represents a binary relation between two OccurrenceSpecifications, to describe that one OccurrenceSpecification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of OccurrenceSpecifications that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="before" ordered="false"
- lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toAfter">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="after" ordered="false"
- lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toBefore">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OccurrenceSpecification" eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions.&#xD;&#xA;OccurrenceSpecifications are ordered along a Lifeline.&#xD;&#xA;The namespace of an OccurrenceSpecification is the Interaction in which it is contained.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="covered" ordered="false" upperBound="-1"
- eType="#//Lifeline">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Lifeline on which the OccurrenceSpecification appears."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="toBefore" ordered="false"
- upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/after">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
- lowerBound="1" eType="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References a specification of the occurring event."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="toAfter" ordered="false"
- upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/before">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification&#xD;&#xA;"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InteractionOperand" eSuperTypes="#//Namespace #//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment. &#xD;&#xA;&#xD;&#xA;An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be&#xD;&#xA;guarded by a InteractionConstraint. Only InteractionOperands with a guard that evaluates to true at this point in the interaction will be considered for the production of the traces for the enclosing CombinedFragment.&#xD;&#xA;&#xD;&#xA;InteractionOperand contains an ordered set of InteractionFragments.&#xD;&#xA;&#xD;&#xA;In Sequence Diagrams these InteractionFragments are ordered according to their geometrical position vertically. The geometrical position of the InteractionFragment is given by the topmost vertical coordinate of its contained OccurrenceSpecifications or symbols."/>
- </eAnnotations>
- <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
- eType="#//InteractionConstraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Constraint of the operand."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
- eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingOperand">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The fragments of the operand."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InteractionConstraint" eSuperTypes="#//Constraint">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An InteractionConstraint is a Boolean expression that guards an operand in a CombinedFragment. InteractionConstraint is a specialization of Constraint. Furthermore the InteractionConstraint contains two expressions designating the minimum and maximum number of times a loop CombinedFragment should execute."/>
- </eAnnotations>
- <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="global_data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The constraint may contain references to global data or write-once data.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="minint_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="minint_non_negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If minint is specified, then the expression must evaluate to a non-negative integer.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="maxint_positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If maxint is specified, then the expression must evaluate to a positive integer.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="maxint_greater_equal_minint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="minint" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The minimum number of iterations of a loop"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="maxint" ordered="false"
- eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The maximum number of iterations of a loop"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExecutionSpecification" abstract="true"
- eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ExecutionSpecification is a specification of the execution of a unit of behavior or action within the Lifeline. The duration of an ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications, the start ExecutionOccurrenceSpecification and the finish ExecutionOccurrenceSpecification."/>
- </eAnnotations>
- <eOperations name="same_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The startEvent and the finishEvent must be on the same Lifeline&#xD;&#xA;start.lifeline = finish.lifeline"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="start" ordered="false"
- lowerBound="1" eType="#//OccurrenceSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the OccurrenceSpecification that designates the start of the Action or Behavior"/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="finish" ordered="false"
- lowerBound="1" eType="#//OccurrenceSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the OccurrenceSpecification that designates the finish of the Action or Behavior."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StateInvariant" eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on. A StateInvariant is an InteractionFragment and it is placed on a Lifeline."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="covered" ordered="false" upperBound="-1"
- eType="#//Lifeline">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the Lifeline on which the StateInvariant appears."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="invariant" ordered="false"
- lowerBound="1" eType="#//Constraint" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Constraint that should hold at runtime for this StateInvariant"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActionExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action."/>
- </eAnnotations>
- <eOperations name="action_referenced" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
- lowerBound="1" eType="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Action whose execution is occurring."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="BehaviorExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
- eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Behavior whose execution is occurring."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExecutionEvent" eSuperTypes="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ExecutionEvent models the start or finish of an execution occurrence."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CreationEvent" eSuperTypes="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A CreationEvent models the creation of an object."/>
- </eAnnotations>
- <eOperations name="no_occurrence_above" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DestructionEvent" eSuperTypes="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A DestructionEvent models the destruction of an object."/>
- </eAnnotations>
- <eOperations name="no_occurrence_specifications_below" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SendOperationEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A SendOperationEvent models the invocation of an operation call."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
- lowerBound="1" eType="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation associated with this event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MessageEvent" abstract="true" eSuperTypes="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SendSignalEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A SendSignalEvent models the sending of a signal."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
- lowerBound="1" eType="#//Signal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The signal associated with this event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MessageOccurrenceSpecification" eSuperTypes="#//OccurrenceSpecification #//MessageEnd">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExecutionOccurrenceSpecification" eSuperTypes="#//OccurrenceSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EReference" name="event" ordered="false" lowerBound="1"
- eType="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Redefines the event referenced to be restricted to an execution event."/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//OccurrenceSpecification/event"/>
- </contents>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="execution" ordered="false"
- lowerBound="1" eType="#//ExecutionSpecification">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="References the execution specification describing the execution that is started or finished at this execution event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ReceiveOperationEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ReceiveOperationEvent models the reception of an operation call."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
- lowerBound="1" eType="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The operation associated with this event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ReceiveSignalEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ReceiveSignalEvent models the receiving of a signal."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
- lowerBound="1" eType="#//Signal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The signal associated with this event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Actor" eSuperTypes="#//BehavioredClassifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject (i.e., in the sense that an instance of an actor is not a part of the instance of its corresponding subject). Actors may represent roles played by human users, external hardware, or other subjects. &#xD;&#xA;Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., role) of some entity that is relevant to the specification of its associated use cases. Thus, a single physical instance may play the role of several different actors and, conversely, a given actor may be played by multiple different instances.&#xD;&#xA;&#xD;&#xA;Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier."/>
- </eAnnotations>
- <eOperations name="associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary.&#xD;&#xA;self.ownedAttribute->forAll ( a |&#xA;(a.association->notEmpty()) implies&#xA;((a.association.memberEnd.size() = 2) and&#xA;(a.opposite.class.oclIsKindOf(UseCase) or&#xA;(a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior))))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An actor must have a name.&#xD;&#xA;name->notEmpty()"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CallEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A call event represents the reception of a request to invoke a specific operation. A call event is distinct from the call action that caused it. A call event may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
- lowerBound="1" eType="#//Operation">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Designates the operation whose invocation raised the call event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ChangeEvent" eSuperTypes="#//Event">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A change event occurs when a Boolean-valued expression becomes true, for example, as a result of a change in the value held in a slot corresponding to an attribute, or a change in the value referenced by a link corresponding to an association. A change event is raised implicitly and is not the result of an explicit action."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="changeExpression" ordered="false"
- lowerBound="1" eType="#//ValueSpecification" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Boolean-valued expression that will result in a change event whenever its value changes from false to true."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SignalEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A signal event represents the receipt of an asynchronous signal. A signal event may cause a response, such as a state machine transition as specified in the classifier behavior of the classifier that specified the receiver object, if the signal referenced by the send request is mentioned in a reception owned or inherited by the classifier that specified the receiver object."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
- lowerBound="1" eType="#//Signal">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The specific signal that is associated with this event."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="AnyReceiveEvent" eSuperTypes="#//MessageEvent">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ForkNode" eSuperTypes="#//ControlNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A fork node has one incoming edge and multiple outgoing edges."/>
- </eAnnotations>
- <eOperations name="one_incoming_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A fork node has one incoming edge.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The edges coming into and out of a fork node must be either all object flows or all control flows.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="FlowFinalNode" eSuperTypes="#//FinalNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="FinalNode" abstract="true" eSuperTypes="#//ControlNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A final node is an abstract control node at which a flow in an activity stops."/>
- </eAnnotations>
- <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A final node has no outgoing edges.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CentralBufferNode" eSuperTypes="#//ObjectNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A central buffer node accepts tokens from upstream objects nodes and passes them along to downstream object nodes. They act as a buffer for multiple in flows and out flows from other object nodes. They do not connect directly to actions."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="MergeNode" eSuperTypes="#//ControlNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A merge node has multiple incoming edges and a single outgoing edge."/>
- </eAnnotations>
- <eOperations name="one_outgoing_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A merge node has one outgoing edge.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The edges coming into and out of a merge node must be either all object flows or all control flows.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DecisionNode" eSuperTypes="#//ControlNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A decision node has one incoming edge and multiple outgoing activity edges."/>
- </eAnnotations>
- <eOperations name="one_incoming_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A decision node has one incoming edge.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A decision input behavior has zero or one input parameter and one output parameter. Any input parameter must be the same as or a supertype of the type of object tokens coming along the incoming edge. The behavior cannot have side effects.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The edges coming into and out of a decision node must be either all object flows or all control flows.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="decisionInput" ordered="false"
- eType="#//Behavior">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Provides input to guard specifications on edges outgoing from the decision node."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActivityFinalNode" eSuperTypes="#//FinalNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="An activity may have more than one activity final node. The first one reached stops all flows in the activity."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ComponentRealization" eSuperTypes="#//Realization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization."/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="abstraction" ordered="false"
- eType="#//Component" eOpposite="#//Component/realization">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Component that owns this ComponentRealization and which is implemented by its realizing classifiers."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/owner #//Dependency/client"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="realizingClassifier" ordered="false"
- lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A classifier that is involved in the implementation of the Component that owns this ComponentRealization."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Dependency/supplier"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//Class #//Namespace">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A component is a subtype of Class which provides for a Component having attributes and operations, and being able to participate in Associations and Generalizations. A Component may form the abstraction for a set of realizingClassifiers that realize its behavior. In addition, because a Class itself is a subtype of an EncapsulatedClassifier, a Component may optionally have an internal structure and own a set of Ports that formalize its interaction points.&#xD;&#xA;&#xD;&#xA;A component has a number of provided and required Interfaces, that form the basis for wiring components together, either using Dependencies, or by using Connectors. A provided Interface is one that is either implemented directly by the component or one of its realizingClassifiers, or it is the type of a provided Port of the Component. A required interface is designated by a Usage Dependency from the Component or one of its realizingClassifiers, or it is the type of a required Port.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="createOwnedClass" ordered="false" lowerBound="1" eType="#//Class">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- <eParameters name="isAbstract" ordered="false" lowerBound="1" eType="#//Boolean"/>
- </eOperations>
- <eOperations name="createOwnedEnumeration" ordered="false" lowerBound="1" eType="#//Enumeration">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="createOwnedPrimitiveType" ordered="false" lowerBound="1" eType="#//PrimitiveType">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="createOwnedInterface" ordered="false" lowerBound="1" eType="#//Interface">
- <eParameters name="name" ordered="false" lowerBound="1" eType="#//String"/>
- </eOperations>
- <eOperations name="realizedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Utility returning the set of realized interfaces of a component:&#xD;&#xA;result = (classifier.clientDependency->&#xA;select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))->&#xA;collect(dependency|dependency.client)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="classifier" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="usedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Utility returning the set of used interfaces of a component:&#xD;&#xA;result = (classifier.supplierDependency->&#xA;select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))->&#xA;collect(dependency|dependency.supplier)"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eParameters name="classifier" ordered="false" lowerBound="1" eType="#//Classifier"/>
- </eOperations>
- <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="result = let usedInterfaces = UsedInterfaces(self) and&#xD;&#xA; let realizingClassifierUsedInterfaces = UsedInterfaces(self.realizingClassifier) and&#xD;&#xA; let typesOfUsedPorts = self.ownedPort.required in&#xD;&#xA; ((usedInterfaces->union(realizingClassifierUsedInterfaces))->&#xD;&#xA; union(typesOfUsedPorts))->asSet()"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="result = let implementedInterfaces = self.implementation->collect(impl|impl.contract) and&#xD;&#xA; let realizedInterfaces = RealizedInterfaces(self) and&#xD;&#xA; let realizingClassifierInterfaces = RealizedInterfaces(self.realizingClassifier) and&#xD;&#xA; let typesOfRequiredPorts = self.ownedPort.provided in&#xD;&#xA; (((implementedInterfaces->union(realizedInterfaces)->union(realizingClassifierInterfaces))->&#xD;&#xA; union(typesOfRequiredPorts))->asSet()"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isIndirectlyInstantiated"
- ordered="false" lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The kind of instantiation that applies to a Component. If false, the component is instantiated as an addressable object. If true, the Component is defined at design-time, but at runtime (or execution-time) an object specified by the Component does not exist, that is, the component is instantiated indirectly, through the instantiation of its realizing classifiers or parts. Several standard stereotypes use this meta attribute, e.g. «specification», «focus», «subsystem»."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
- upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interfaces that the component requires from other components in its environment in order to be able to offer its full set of provided functionality. These interfaces may be Used by the Component or any of its realizingClassifiers, or they may be the Interfaces that are required by its public Ports."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
- upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
- derived="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interfaces that the component exposes to its environment. These interfaces may be Realized by the Component or any of its realizingClassifiers, or they may be the Interfaces that are provided by its public Ports."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
- upperBound="-1" eType="#//PackageableElement" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of PackageableElements that a Component owns. In the namespace of a component, all model elements that are involved in or related to its definition may be owned or imported explicitly. These may include e.g. Classes, Interfaces, Components, Packages, Use cases, Dependencies (e.g. mappings), and Artifacts."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="realization" ordered="false"
- upperBound="-1" eType="#//ComponentRealization" containment="true" eOpposite="#//ComponentRealization/abstraction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//Class #//DeploymentTarget">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, a Node is a subclass of Class. It is associated with a Deployment of an Artifact. It is also associated with a set of Elements that are deployed on it. This is a derived association in that these PackageableElements are involved in a Manifestation of an Artifact that is deployed on the Node. Nodes may have an internal structure defined in terms of parts and connectors associated with them for advanced modeling applications."/>
- </eAnnotations>
- <eOperations name="internal_structure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The internal structure of a Node (if defined) consists solely of parts of type Node.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="nestedNode" ordered="false"
- upperBound="-1" eType="#//Node" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The Nodes that are defined (nested) within the Node."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Device" eSuperTypes="#//Node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Device is a physical computational resource with processing capability upon which artifacts may be deployed for execution. Devices may be complex, i.e. they may consist of other devices. In the metamodel, a Device is a subclass of Node."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExecutionEnvironment" eSuperTypes="#//Node">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, a ExecutionEnvironment is a subclass of Node. It is usually part of a general Node, representing the physical hardware environment on which the ExecutionEnvironment resides. In that environment, the ExecutionEnvironment implements a standard set of services that Components require at execution time (at the modeling level these services are usually implicit). For each component Deployment, aspects of these services may be determined by properties in a DeploymentSpecification for a particular kind of ExecutionEnvironment."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CommunicationPath" eSuperTypes="#//Association">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="In the metamodel, CommunicationPath is a subclass of Association."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The association ends of a CommunicationPath are typed by DeploymentTargets.&#xD;&#xA;result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget))"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//Association/association_ends"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CombinedFragment" eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of CombinedFragments the user will be able to describe a number of traces in a compact and concise manner. CombinedFragment is a specialization of InteractionFragment."/>
- </eAnnotations>
- <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the interactionOperator is opt, loop, break, or neg there must be exactly one operand&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="consider_and_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment&#xD;&#xA;((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="interactionOperator" ordered="false"
- lowerBound="1" eType="#//InteractionOperatorKind" defaultValueLiteral="seq">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the operation which defines the semantics of this combination of InteractionFragments."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="operand" lowerBound="1"
- upperBound="-1" eType="#//InteractionOperand" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of operands of the combined fragment."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="cfragmentGate" ordered="false"
- upperBound="-1" eType="#//Gate" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the gates that form the interface between this CombinedFragment and its surroundings"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Element/ownedElement"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="InteractionOperatorKind">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment."/>
- </eAnnotations>
- <eLiterals name="seq">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="alt" value="1">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at this point in the interaction. An implicit true guard is implied if the operand has no guard."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="opt" value="2">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the (sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment where there is one operand with non-empty content and the second operand is empty."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="break" value="3">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done non-deterministically."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="par" value="4">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the ordering imposed by each operand as such is preserved."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="strict" value="5">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing CombinedFragment."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="loop" value="6">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="critical" value="7">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave into the region, such as e.g. with par-operator, this is prevented by defining a region."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="neg" value="8">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="assert" value="9">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the operand of the assertion are the only valid continuations. All other continuations result in an invalid trace."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="ignore" value="10">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interacionOperator ignore designates that there are some message types that are not shown within this combined fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can appear anywhere in the traces."/>
- </eAnnotations>
- </eLiterals>
- <eLiterals name="consider" value="11">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interactionOperator consider designates which messages should be considered within this combined fragment. This is equivalent to defining every other message to be ignored."/>
- </eAnnotations>
- </eLiterals>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Continuation" eSuperTypes="#//InteractionFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A Continuation is a syntactic way to define continuations of different branches of an Alternative CombinedFragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control."/>
- </eAnnotations>
- <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Continuations with the same name may only cover the same set of Lifelines (within one Classifier).&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="global" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="setting" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ConsiderIgnoreFragment" eSuperTypes="#//CombinedFragment">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A ConsiderIgnoreFragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified."/>
- </eAnnotations>
- <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.&#xD;&#xA;(interactionOperator = #consider) or (interactionOperator = #ignore)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).&#xD;&#xA;message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
- upperBound="-1" eType="#//NamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The set of messages that apply to this fragment"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="CreateObjectAction" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime."/>
- </eAnnotations>
- <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier cannot be abstract.&#xD;&#xA;not (self.classifier.isAbstract = #true)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="classifier_not_association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The classifier cannot be an association class&#xD;&#xA;not self.classifier.oclIsKindOf(AssociationClass)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the result pin must be the same as the classifier of the action.&#xD;&#xA;self.result.type = self.classifier"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
- lowerBound="1" eType="#//Classifier">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Classifier to be instantiated."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- lowerBound="1" eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the output pin on which the result is put."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DestroyObjectAction" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This action destroys the object on its input pin at runtime. The object may be a link object, in which case the semantics of DestroyLinkAction also applies."/>
- </eAnnotations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.target.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="no_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The input pin has no type.&#xD;&#xA;self.target.type->size() = 0"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyLinks" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether links in which the object participates are destroyed along with the object."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyOwnedObjects"
- ordered="false" lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether objects owned by the object are destroyed along with the object."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The input pin providing the object to be destroyed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TestIdentityAction" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This action returns true if the two input values are the same identity, false if they are not."/>
- </eAnnotations>
- <eOperations name="no_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The input pins have no type.&#xD;&#xA;self.first.type->size() = 0&#xA;and self.second.type->size() = 0&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the input pins is 1..1.&#xD;&#xA;self.first.multiplicity.is(1,1)&#xA;and self.second.multiplicity.is(1,1)&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="result_is_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the result is Boolean.&#xD;&#xA;self.result.type.oclIsTypeOf(Boolean)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="first" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the pin on which an object is placed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="second" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the pin on which an object is placed."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- lowerBound="1" eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Tells whether the two input objects are identical."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ReadSelfAction" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Every action is ultimately a part of some behavior, which is in turn optionally attached in some way to the specification of a classifier; for example as the body of a method or as part of a state machine. When the behavior executes, it does so in the context of some specific host instance of that classifier. This action produces this host instance, if any, on its output pin. The type of the output pin is the classifier to which the behavior is associated in the user model."/>
- </eAnnotations>
- <eOperations name="contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The action must be contained in an behavior that has a host classifier.&#xD;&#xA;self.context->size() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the result output pin is the host classifier.&#xD;&#xA;self.result.type = self.context"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- lowerBound="1" eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the output pin on which the hosting object is placed.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="StructuralFeatureAction" abstract="true"
- eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This abstract action class statically specifies the structural feature being accessed. The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1."/>
- </eAnnotations>
- <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The structural feature must not be static.&#xD;&#xA;self.structuralFeature.isStatic = #false"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the object input pin is the same as the classifier of the object passed on this pin.&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the input pin must be 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Visibility of structural feature must allow access to the object performing the action.&#xD;&#xA;let host : Classifier = self.context in&#xA;self.structuralFeature.visibility = #public&#xA;or host = self.structuralFeature.featuringClassifier.type&#xA;or (self.structuralFeature.visibility = #protected and host.allSupertypes&#xA;->includes(self.structuralFeature.featuringClassifier.type)))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="one_featuring_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A structural feature has exactly one featuringClassifier.&#xD;&#xA;self.structuralFeature.featuringClassifier->size() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeature" ordered="false"
- lowerBound="1" eType="#//StructuralFeature">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Structural feature to be read."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the input pin from which the object whose structural feature is to be read or written is obtained.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ReadStructuralFeatureAction" eSuperTypes="#//StructuralFeatureAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This action reads the values of a structural feature, in order if the structural feature is ordered."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.&#xD;&#xA;self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StructuralFeatureAction/multiplicity"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type and ordering of the result output pin are the same as the type and ordering of the structural feature.&#xD;&#xA;self.result.type = self.structuralFeature.type&#xA;and self.result.ordering = self.structuralFeature.ordering&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- lowerBound="1" eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the output pin on which the result is put."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="WriteStructuralFeatureAction" abstract="true"
- eSuperTypes="#//StructuralFeatureAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A write structural feature action operates on a structural feature of an object to modify its values. It has an input pin on which the value that will be added or removed is put. Other aspects of write structural feature actions are inherited from StructuralFeatureAction."/>
- </eAnnotations>
- <eAnnotations source="duplicates">
- <contents xsi:type="ecore:EOperation" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eAnnotations source="redefines" references="#//StructuralFeatureAction/multiplicity"/>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </contents>
- </eAnnotations>
- <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type input pin is the same as the classifier of the structural feature.&#xD;&#xA;self.value.type = self.structuralFeature.featuringClassifier"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
- lowerBound="1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Value to be added or removed from the structural feature."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ClearStructuralFeatureAction" eSuperTypes="#//StructuralFeatureAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This action removes all values of a structural feature."/>
- </eAnnotations>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RemoveStructuralFeatureValueAction"
- eSuperTypes="#//WriteStructuralFeatureAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1.&#xD;&#xA;&#xD;&#xA;Structural features are potentially multi-valued and ordered, and may support duplicates, so the action supports specification of removal points for new values. It also supports the removal of all duplicate values.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="non_unique_removal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin.&#xD;&#xA;&#xD;&#xA;true"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRemoveDuplicates" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether to remove duplicates of the value in nonunique structural features."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="removeAt" ordered="false"
- eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="AddStructuralFeatureValueAction" eSuperTypes="#//WriteStructuralFeatureAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Structural Features are potentially multi-valued and ordered, so the action supports specification of insertion points for new values. It also supports the removal of existing values of the structural feature before the new value is added.&#xD;&#xA;&#xD;&#xA;The object to access is specified dynamically, by referring to an input pin on which the object will be placed at runtime. The type of the value of this pin is the classifier that owns the specified structural feature, and the value's multiplicity is 1..1.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.&#xD;&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" ordered="false"
- lowerBound="1" eType="#//Boolean" defaultValueLiteral="false">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Specifies whether existing values of the structural feature of the object should be removed before adding the new value."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
- eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Gives the position at which to insert a new value or move an existing value in ordered structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero. This pin is omitted for unordered structural features."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LinkAction" abstract="true" eSuperTypes="#//Action">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any."/>
- </eAnnotations>
- <eOperations name="same_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The association ends of the link end data must all be from the same association and include all and only the association ends of that association.&#xD;&#xA;self.endData->collect(end) = self.association()->collect(connection))"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The association ends of the link end data must not be static.&#xD;&#xA;self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The input pins of the action are the same as the pins of the link end data and insertion pins.&#xD;&#xA;self.input->asSet() =&#xA;let ledpins : Set = self.endData->collect(value) in&#xA;if self.oclIsKindOf(LinkEndCreationData)&#xA;then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt)&#xA;else ledpins&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="association" ordered="false" lowerBound="1" eType="#//Association">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The association operates on LinkAction. It returns the association of the action.&#xD;&#xA;result = self.endData->asSequence().first().end.association"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="spec"/>
- </eAnnotations>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="endData" ordered="false"
- lowerBound="2" upperBound="-1" eType="#//LinkEndData" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Data identifying one end of a link by the objects on its ends and qualifiers."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="inputValue" ordered="false"
- lowerBound="1" upperBound="-1" eType="#//InputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Pins taking end objects and qualifier values as input."/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/input"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LinkEndData" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class.&#xD;&#xA;LinkEndData is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of LinkAction. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the staticallyspecified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class.&#xD;&#xA;"/>
- </eAnnotations>
- <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The property must be an association end.&#xD;&#xA;self.end.association->size() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the end object input pin is the same as the type of the association end.&#xD;&#xA;self.value.type = self.end.type"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the end object input pin must be 1..1.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="qualifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The qualifiers include all and only the qualifiers of the association end.&#xD;&#xA;self.qualifier->collect(qualifier) = self.end.qualifier"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="end_object_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The end object input pin is not also a qualifier value input pin.&#xD;&#xA;self.value->excludesAll(self.qualifier.value)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
- eType="#//InputPin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="end" ordered="false" lowerBound="1"
- eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Association end for which this link-end data specifies values."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
- upperBound="-1" eType="#//QualifierValue" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="List of qualifier values"/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="QualifierValue" eSuperTypes="#//Element">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class."/>
- </eAnnotations>
- <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The qualifier attribute must be a qualifier of the association end of the link-end data.&#xD;&#xA;self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type of the qualifier value input pin is the same as the type of the qualifier attribute.&#xD;&#xA;self.value.type = self.qualifier.type"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the qualifier value input pin is &quot;1..1&quot;.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
- lowerBound="1" eType="#//Property">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Attribute representing the qualifier for which the value is to be specified."/>
- </eAnnotations>
- </eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
- lowerBound="1" eType="#//InputPin">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Input pin from which the specified value for the qualifier is taken."/>
- </eAnnotations>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ReadLinkAction" eSuperTypes="#//LinkAction">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This action navigates an association towards one end, which is the end that does not have an input pin to take its object (the open end). The objects put on the result output pin are the ones participating in the association at the open end, conforming to the specified qualifiers, in order if the end is ordered. The semantics is undefined for reading a link that violates the navigability or visibility of the open end."/>
- </eAnnotations>
- <eOperations name="one_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Exactly one link-end data specification (the 'open' end) must not have an end object input pin.&#xD;&#xA;self.endData->select(ed | ed.value->size() = 0)->size() = 1"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The type and ordering of the result output pin are same as the type and ordering of the open association end.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;self.result.type = openend.type&#xA;and self.result.ordering = openend.ordering&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="navigable_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The open end must be navigable.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.isNavigable()&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="Visibility of the open end must allow access to the object performing the action.&#xD;&#xA;let host : Classifier = self.context in&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;"/>
- </eAnnotations>
- <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
- <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
- </eOperations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
- lowerBound="1" eType="#//OutputPin" containment="true">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="The pin on which are put the objects participating in the association at the end not specified by the inputs.&#xD;&#xA;"/>
- </eAnnotations>
- <eAnnotations source="subsets" references="#//Action/output"/>
- </eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LinkEndCreationData" eSuperTypes="#//LinkEndData">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="This class is required when using CreateLinkAction, to specify insertion points for ordered ends and for replacing all links at end. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, as required. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end. These pieces are brought together around LinkEndData. Each association end is identified separately with an instance of the LinkEndData class.&#xD;&#xA;&#xD;&#xA;Qualifier values are used in CompleteActions to identify links to create."/>
- </eAnnotations>
- <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
- <details key="documentation" value="LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.&#xD;&#xA;self.LinkAction.oclIsKindOf(CreateL