blob: 6996c83cd22e484ed54e590bf01b0fb3e12df8ad [file] [log] [blame]
<?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="uml2"
nsURI="http://www.eclipse.org/uml2/1.0.0/UML" nsPrefix="uml">
<eClassifiers xsi:type="ecore:EDataType" name="Integer" instanceClassName="int"/>
<eClassifiers xsi:type="ecore:EDataType" name="Boolean" instanceClassName="boolean"/>
<eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String"/>
<eClassifiers xsi:type="ecore:EDataType" name="UnlimitedNatural" instanceClassName="int"/>
<eClassifiers xsi:type="ecore:EDataType" name="Sequence" instanceClassName="java.util.List"/>
<eClassifiers xsi:type="ecore:EDataType" name="Set" instanceClassName="java.util.Set"/>
<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="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. "/>
</eAnnotations>
<eOperations name="not_own_self" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;not self.allOwnedElements()->includes(self)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.mustBeOwned() implies owner->notEmpty()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="allOwnedElements" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="mustBeOwned" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedElement" ordered="false"
upperBound="-1" eType="#//Element" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Element/owner">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Elements owned by this element. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Element"
changeable="false" volatile="true" transient="true" derived="true" eOpposite="#//Element/ownedElement">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Element that owns this element. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
upperBound="-1" eType="#//Comment" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Comments owned by this element. Subsets Element::ownedElement."/>
</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="lowerBound" eType="#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="upperBound" eType="#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="isMultivalued" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;upperBound() > 1&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="includesCardinality" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(lowerBound() &lt;= C) and (upperBound() >= C)&#xD;&#xA;&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="C" eType="#//Integer"/>
</eOperations>
<eOperations name="includesMultiplicity" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="M" eType="#//MultiplicityElement"/>
</eOperations>
<eOperations name="upper_gt_0" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;upperBound()->notEmpty() implies upperBound() > 0&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;lowerBound()->notEmpty() implies lowerBound() >= 0&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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_eq_lowerbound" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;lower=lowerBound()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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_eq_upperbound" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;upper = upperBound()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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" eType="#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;lowerBound()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="upper" eType="#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;upperBound()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" 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. Default is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" 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. Default is true."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" eType="#//Integer"
changeable="false" 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, if it is expressed as an integer."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" eType="#//UnlimitedNatural"
changeable="false" 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, if it is expressed as an unlimited natural."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="upperValue" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The specification of the upper bound for this multiplicity. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="lowerValue" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The specification of the lower bound for this multiplicity. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="namespace" eType="#//Namespace"
changeable="false" volatile="true" transient="true" derived="true" eOpposite="#//Namespace/%duplicates%/ownedMember">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the namespace that owns the NamedElement. Subsets Element::owner. This is a derived union."/>
</eAnnotations>
</contents>
</eAnnotations>
<eOperations name="no_name" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty()&#xD;&#xA;&#x9;implies self.qualifiedName->isEmpty()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="qualified_name" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xD;&#xA;self.qualifiedName =&#xD;&#xA; self.allNamespaces()->iterate( ns : Namespace; result: String = self.name |&#xD;&#xA;&#x9;&#x9;ns.name->union(self.separator())->union(result))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="allNamespaces" eType="#//Sequence">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if self.namespace->isEmpty()&#xD;&#xA;then Sequence{}&#xD;&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="isDistinguishableFrom" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xD;&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xD;&#xA;else true&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="n" eType="#//NamedElement"/>
<eParameters name="ns" eType="#//Namespace"/>
</eOperations>
<eOperations name="separator" eType="#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;'::'&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="qualifiedName" eType="#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xD;&#xA;then &#xD;&#xA; self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xD;&#xA;else&#xD;&#xA; Set{}&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="visibility_needs_ownership" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;namespace->isEmpty() implies visibility->isEmpty()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="name" eType="#//String"
defaultValueLiteral="">
<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="qualifiedName" eType="#//String"
changeable="false" volatile="true" transient="true" defaultValueLiteral=""
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. This is a derived attribute."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" eType="#//VisibilityKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Determines the visibility of the NamedElement within different Namespaces within the overall model. Package Dependencies (“Dependencies” on page 94)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="clientDependency" ordered="false"
upperBound="-1" eType="#//Dependency" eOpposite="#//Dependency/client"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nameExpression" eType="#//StringExpression"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The expression used to define the name of this named element."/>
</eAnnotations>
</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 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. A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace. 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. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="ownedMember" ordered="false" upperBound="-1"
eType="#//NamedElement" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//NamedElement/%duplicates%/namespace">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/ownedElement #//Namespace/member"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A collection of NamedElements owned by the Namespace. Subsets Element::ownedElement and Namespace::member. This is a derived union."/>
</eAnnotations>
</contents>
</eAnnotations>
<eOperations name="members_are_distinguishable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;membersAreDistinguishable()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="getNamesOfMember" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if self.ownedMember->includes(element)&#xD;&#xA;then Set{}->include(element.name)&#xD;&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xD;&#xA; if elementImports->notEmpty()&#xD;&#xA; then elementImports->collect(el | el.getName())&#xD;&#xA; else &#xD;&#xA; self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))->collect(pi | pi.importedPackage.getNamesOfMember(element))&#xD;&#xA; endif&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="element" eType="#//NamedElement"/>
</eOperations>
<eOperations name="membersAreDistinguishable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.member->forAll( memb |&#xD;&#xA;&#x9;self.member->excluding(memb)->forAll(other |&#xD;&#xA;&#x9;&#x9;memb.isDistinguishableFrom(other, self)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="importedMember_derived" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.importedMember->includesAll(self.importedMembers(self.elementImport.importedElement.asSet()->union(self.packageImport.importedPackage->collect(p | p.visibleMembers()))))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="importedMember" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.importedMembers(self.elementImport.importedElement.asSet()->union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="importMembers" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem | mem.imp.isDistinguishableFrom(mem, self)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="imps" eType="#//Set"/>
</eOperations>
<eOperations name="excludeCollisions" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="imps" eType="#//Set"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/namespace">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a set of Constraints owned by this Namespace. Subsets Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="importedMember" ordered="false"
upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="subsets" references="#//Namespace/member"/>
<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. Subsets Namespace::member."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
upperBound="-1" eType="#//ElementImport" containment="true" eOpposite="#//ElementImport/importingNamespace">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the ElementImports owned by the Namespace. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
upperBound="-1" eType="#//PackageImport" containment="true" eOpposite="#//PackageImport/importingNamespace">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the PackageImports owned by the Namespace. Subsets Element::ownedElement."/>
</eAnnotations>
</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 expression contains a language-specific text string used to describe a value or values, and an optional specification of the language. One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The text of the expression."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="language" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the language in which the expression is stated. The interpretation of the expression body depends on the language. If language is unspecified, it might be implicit from the expression body or the context."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" 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" 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="ValueSpecification" abstract="true"
eSuperTypes="#//TypedElement #//ParameterableElement">
<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. "/>
</eAnnotations>
<eOperations name="isComputable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;false&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="integerValue" eType="#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;Set{}&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="booleanValue" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;Set{}&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="stringValue" eType="#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;Set{}&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="unlimitedValue" eType="#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;Set{}&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="isNull" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;false&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//OpaqueExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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" eType="#//String"
defaultValueLiteral="">
<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="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a sequence of operands. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//TemplateableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies a string that is the comment."/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="bodyExpression" eType="#//StringExpression"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</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. Directed relationship is an abstract metaclass. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the sources of the DirectedRelationship. Subsets Relationship::relatedElement. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the targets of the DirectedRelationship. Subsets Relationship::relatedElement. This is a derived union."/>
</eAnnotations>
</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" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the elements related by the Relationship. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//BehavioredClassifier #//EncapsulatedClassifier">
<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. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="inherit" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Classifier/inherit"/>
<eParameters name="inhs" eType="#//Set"/>
</contents>
<contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true" eOpposite="#//Property/class_">
<eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The attributes (i.e. the properties) owned by the class. The association is ordered. Subsets Classifier::attribute and Namespace::ownedMember."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="isAbstract" eType="#//Boolean" defaultValueLiteral="false">
<eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
eType="#//Operation" containment="true" eOpposite="#//Operation/class_">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The operations owned by the class. The association is ordered. Subsets Classifier::feature and Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
upperBound="-1" eType="#//Class" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="redefines" references="#//Classifier/general.1"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This gives the superclasses of a class. It redefines Classifier::general. This is derived."/>
</eAnnotations>
</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"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
eType="#//Classifier" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References all the Classifiers that are defined (nested) within the Class. Subsets Element:: ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" eType="#//Boolean">
<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="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Receptions that objects of this class are willing to accept. (Specializes Namespace.owned- Member and Classifier.feature.)"/>
</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="conformsTo" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;false&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="other" eType="#//Type"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="package" eType="#//Package"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"
eOpposite="#//Package/ownedType">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the owning package of a package. Subsets NamedElement::namespace."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature #//ConnectableElement #//DeploymentTarget">
<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 (see semantics of 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. Package AssociationClasses (“AssociationClasses” on page 107) A property may have other properties (attributes) that serve as qualifiers. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="isConsistentWith" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(redefinee.oclIsKindOf(Property) and &#xD;&#xA; let prop: Property = redefinee.oclAsType(Property) in&#xD;&#xA; type.conformsTo(prop.type) and&#xD;&#xA; (lowerBound()->notEmpty and prop.lowerBound()->notEmpty() implies lowerBound() >= prop.lowerBound())&#xD;&#xA; and&#xD;&#xA; (upperBound()->notEmpty and prop.upperBound()->notEmpty() implies upperBound() &lt;= prop.upperBound())&#xD;&#xA; and&#xD;&#xA; (prop.isDerived implies isDerived))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
<eParameters name="redefinee" eType="#//RedefinableElement"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="isReadOnly" eType="#//Boolean" defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If true, the attribute may only be read, and not written. The default value is false."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
</contents>
</eAnnotations>
<eOperations name="opposite_is_other_end" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;opposite = &#xD;&#xA;&#x9;if owningAssociation->notEmpty() and association.memberEnd->size() = 2 then &#xD;&#xA;&#x9;&#x9;let otherEnd = (association.memberEnd - self)->any() in &#xD;&#xA;&#x9;&#x9;&#x9;if otherEnd.owningAssociation->notEmpty then otherEnd else Set{} endif&#xD;&#xA;&#x9;else Set {}&#xD;&#xA;&#x9;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="opposite" eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if owningAssociation->notEmpty() and association.memberEnd->size() = 2 then &#xD;&#xA;&#x9;&#x9;let otherEnd = (association.memberEnd - self)->any() in &#xD;&#xA;&#x9;&#x9;&#x9;if otherEnd.owningAssociation->notEmpty then otherEnd else Set{} endif&#xD;&#xA;&#x9;else Set {}&#xD;&#xA;&#x9;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="multiplicity_of_composite" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;subsettedProperty->notEmpty() implies&#xD;&#xA;&#x9;(subsettingContext()->notEmpty() and subsettingContext()->forAll (sc |&#xD;&#xA;&#x9;&#x9;subsettedProperty->forAll(sp | &#xD;&#xA;&#x9;&#x9;&#x9;sp.subsettingContext()->exists(c | sc.conformsTo(c)))))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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_property_redefinition" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(subsettedProperty->exists(sp | sp.class->notEmpty())&#x9;&#xD;&#xA;&#x9;&#x9;implies class->notEmpty())&#xD;&#xA;and&#xD;&#xA;(redefinedProperty->exists(rp | rp.class->notEmpty())&#x9;&#xD;&#xA;&#x9;&#x9;implies class->notEmpty())&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;subsettedProperty->forAll(sp |&#xD;&#xA;&#x9;type.conformsTo(sp.type) and&#xD;&#xA;&#x9;&#x9;((upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies&#xD;&#xA;&#x9;&#x9;&#x9;upperBound()&lt;=sp.upperBound() ))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;isReadOnly implies class->notEmpty()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="derivedUnion_is_derived" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;isDerivedUnion implies isDerived&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="subsettingContext" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if association->notEmpty()&#xD;&#xA;then association.endType-type &#xD;&#xA;else if classifier->notEmpty then Set{classifier} else Set{} endif&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="#//String"
changeable="false" volatile="true" transient="true" defaultValueLiteral=""
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" eType="#//Boolean"
changeable="false" volatile="true" transient="true" defaultValueLiteral="false"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="class_" eType="#//Class"
changeable="false" volatile="true" transient="true" resolveProxies="false">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace #//Feature/featuringClassifier"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//Property"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" 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. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" eType="#//Association"
transient="true" eOpposite="#//Association/ownedEnd">
<eAnnotations source="subsets" references="#//Property/association #//NamedElement/%duplicates%/namespace #//Feature/featuringClassifier"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the owning association of this property. Subsets Property::association, NamedElement::namespace, Feature::featuringClassifier, and RedefinableElement:: redefinitionContext."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
upperBound="-1" eType="#//Property">
<eAnnotations source="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
upperBound="-1" eType="#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//DataType"
transient="true" eOpposite="#//DataType/ownedAttribute">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace #//Feature/featuringClassifier"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The DataType that owns this Property. Subsets NamedElement::namespace, Feature::featuringClassifier, and Property::classifier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="association" 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:EAttribute" name="aggregation" 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. The default value is none."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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 is instantiated. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" upperBound="-1"
eType="#//Property" containment="true" eOpposite="#//Property/associationEnd">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="associationEnd" eType="#//Property"
transient="true" eOpposite="#//Property/qualifier">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//TypedElement #//MultiplicityElement #//ParameterableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="upper" eType="#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if returnResult->size() = 1 then returnResult->any().upper else Set{} endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/upper"/>
</contents>
<contents xsi:type="ecore:EOperation" name="isConsistentWith" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(redefinee.oclIsKindOf(Operation) and&#xD;&#xA; let op: Operation = redefinee.oclAsType(Operation) in&#xD;&#xA; self.formalParameter.size() = op.formalParameter.size() and&#xD;&#xA; self.returnResult.size() = op.returnResult.size() and&#xD;&#xA; forAll(i | op.formalParameter[i].type.conformsTo(self.formalParameter[i].type)) and&#xD;&#xA; forAll(i | op.returnResult[i].type.conformsTo(self.returnResult[i].type))&#xD;&#xA;)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
<eParameters name="redefinee" eType="#//RedefinableElement"/>
</contents>
<contents xsi:type="ecore:EOperation" name="lower" eType="#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if returnResult->size() = 1 then returnResult->any().lower else Set{} endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/lower"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="upper" eType="#//UnlimitedNatural"
changeable="false" volatile="true" transient="true" defaultValueLiteral="1"
derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the upper multiplicity of the return parameter, if present.This is derived."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/upper.1"/>
</contents>
<contents xsi:type="ecore:EReference" name="type" eType="#//Type" changeable="false"
volatile="true" transient="true" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the return result of the operation, if present. This is a derived value."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//TypedElement/type"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="lower" eType="#//Integer" changeable="false"
volatile="true" transient="true" defaultValueLiteral="1" derived="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the lower multiplicity of the return parameter, if present. This is derived."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/lower.1"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="isUnique" 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="Specifies whether the return parameter is unique or not, if present. This is derived."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/isUnique"/>
</contents>
<contents xsi:type="ecore:EReference" name="formalParameter" ordered="false"
upperBound="-1" eType="#//Parameter" containment="true">
<eAnnotations source="redefines" references="#//Operation/ownedParameter #//BehavioralFeature/formalParameter"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the formal parameters for this Operation. Redefines BehavioralFeature::formal- Parameter."/>
</eAnnotations>
</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. Redefines Basic::Operation.raisedException and BehavioralFeature. raisedException."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
</contents>
<contents xsi:type="ecore:EAttribute" name="isOrdered" 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="Specifies whether the return parameter is ordered or not, if present. This is derived."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//MultiplicityElement/isOrdered"/>
</contents>
</eAnnotations>
<eOperations name="type_of_result" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if returnResult->size() = 1 then&#xD;&#xA; type = returnResult.type&#xD;&#xA;else&#xD;&#xA; type = nil&#xD;&#xA;endif&#xD;&#xA;&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="isOrdered" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if returnResult->size() = 1 then returnResult->any().isOrdered else false endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="isUnique" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA; if returnResult->size() = 1 then returnResult->any().isUnique else true endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="type" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if returnResult->size() = 1 then returnResult->any().type else Set{} endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="only_body_for_query" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;bodyCondition->notEmpty() implies isQuery&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="ownedParameter" upperBound="-1"
eType="#//Parameter" containment="true" eOpposite="#//Parameter/operation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="class_" eType="#//Class"
transient="true" eOpposite="#//Class/ownedOperation">
<eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext #//NamedElement/%duplicates%/namespace #//Feature/featuringClassifier"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" 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). The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//DataType"
transient="true" eOpposite="#//DataType/ownedOperation">
<eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext #//NamedElement/%duplicates%/namespace #//Feature/featuringClassifier"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
upperBound="-1" eType="#//Constraint" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember #//Namespace/ownedRule"/>
<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. Subsets Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
upperBound="-1" eType="#//Constraint" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember #//Namespace/ownedRule"/>
<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. Subsets Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
upperBound="-1" eType="#//Operation">
<eAnnotations source="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the Operations that are redefined by this Operation. Subsets RedefinableElement. redefinedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" eType="#//Constraint"
resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember #//Namespace/ownedRule"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="optional Constraint on the result values of an invocation of this Operation. Subsets Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
</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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The type of the TypedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//TypedElement #//MultiplicityElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="operation" eType="#//Operation"
transient="true" eOpposite="#//Operation/ownedParameter">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Operation for which this is a formal parameter. Subsets NamedElement:: namespace."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="#//String"
changeable="false" volatile="true" transient="true" defaultValueLiteral=""
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" 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. The default value is in."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isException" eType="#//Boolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isStream" eType="#//Boolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="effect" eType="#//ParameterEffectKind"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameterSet" ordered="false"
upperBound="-1" eType="#//ParameterSet" eOpposite="#//ParameterSet/parameter"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement">
<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. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="mustBeOwned" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;false&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
</contents>
</eAnnotations>
<eOperations name="elements_public_or_private" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="visibleMembers" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;member->select( m | self.makesVisible(m))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="makesVisible" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;el.visibility->isEmpty() or el.visibility = #public&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="el" eType="#//NamedElement"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
upperBound="-1" eType="#//Package" changeable="false" volatile="true" transient="true"
derived="true" resolveProxies="false" eOpposite="#//Package/nestingPackage">
<eAnnotations source="subsets" references="#//Package/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the owned members that are Packages. Subsets Package::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" eType="#//Package"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"
eOpposite="#//Package/nestedPackage">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" ordered="false"
upperBound="-1" eType="#//Type" changeable="false" volatile="true" transient="true"
derived="true" resolveProxies="false" eOpposite="#//Type/package">
<eAnnotations source="subsets" references="#//Package/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the owned members that are Types. Subsets Package::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
upperBound="-1" eType="#//PackageableElement" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the members that are owned by this Package. Redefines Namespace::ownedMember."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
upperBound="-1" eType="#//PackageMerge" containment="true" eOpposite="#//PackageMerge/mergingPackage">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="appliedProfile" ordered="false"
upperBound="-1" eType="#//ProfileApplication" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/packageImport"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="packageExtension" ordered="false"
upperBound="-1" eType="#//PackageMerge" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</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 user-defined enumeration literals. It is possible to extend the set of applicable enumeration literals in other packages or profiles. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiteral" upperBound="-1"
eType="#//EnumerationLiteral" containment="true" eOpposite="#//EnumerationLiteral/enumeration">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ordered set of literals for this Enumeration. Subsets Element::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="DataType defines a kind of classifier in which operations are all pure functions (i.e., they can return data values but they cannot change data values, because they have no identity). For example, an “add” operation on a number with another number as an argument yields a third number as a result; the target and argument are unchanged. A DataType may also contain attributes to support the modeling of structured data types. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="inherit" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;inhs->excluding(inh |&#xD;&#xA;&#x9;ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Classifier/inherit"/>
<eParameters name="inhs" eType="#//Set"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true" eOpposite="#//Property/datatype">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember #//Classifier/attribute"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Attributes owned by the DataType. Subsets Classifier::attribute and Element:: ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
eType="#//Operation" containment="true" eOpposite="#//Operation/datatype">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember #//Classifier/feature"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Operations owned by the DataType. Subsets Classifier::feature and Element:: ownedMember."/>
</eAnnotations>
</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 user-defined data value for an enumeration. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" eType="#//Enumeration"
transient="true" eOpposite="#//Enumeration/ownedLiteral">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Enumeration that this EnumerationLiteral is a member of. Subsets NamedElement:: namespace."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The instances of primitive type used in UML itself include Boolean, Integer, UnlimitedNatural, and String. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//Type #//RedefinableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A classifier is a namespace whose members can include features. Classifier is an abstract metaclass. 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. A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers. "/>
</eAnnotations>
<eOperations name="allFeatures" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;member->select(oclIsKindOf(Feature))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="no_cycles_in_generalization" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;not self.allParents()->includes(self)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.parents()->forAll(c | self.maySpecializeType(c))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="inherited_member" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.inheritedMember->includesAll(self.inherit(self.parents()->collect(p | p.inheritableMembers(self)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="inheritedMember" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.inherit(self.parents()->collect(p | p.inheritableMembers(self))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="parents" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;generalization.general&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="allParents" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.parents()->union(self.parents()->collect(p | p.allParents())&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="inheritableMembers" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;member->select(m | c.hasVisibilityOf(m))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="c" eType="#//Classifier"/>
</eOperations>
<eOperations name="hasVisibilityOf" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="n" eType="#//NamedElement"/>
</eOperations>
<eOperations name="inherit" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;inhs&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="inhs" eType="#//Set"/>
</eOperations>
<eOperations name="maySpecializeType" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.oclIsKindOf(c.oclType)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="c" eType="#//Classifier"/>
</eOperations>
<eOperations name="general" eType="#//Set">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.parents()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eOperations name="general_equals_parents" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;general = self.parents()&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="conformsTo" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;(self=other) or (self.allParents()->includes(other))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="other" eType="#//Classifier"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
upperBound="-1" eType="#//Feature" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Feature/featuringClassifier">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" 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. Default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
upperBound="-1" eType="#//NamedElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="subsets" references="#//Namespace/member"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
upperBound="-1" eType="#//Generalization" containment="true" eOpposite="#//Generalization/specific">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="attribute" ordered="false"
upperBound="-1" eType="#//Property" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Classifier/feature"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
upperBound="-1" eType="#//Classifier">
<eAnnotations source="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="substitution" ordered="false"
upperBound="-1" eType="#//Substitution" containment="true" eOpposite="#//Substitution/substitutingClassifier">
<eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="powertypeExtent" ordered="false"
upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/powertype"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedUseCase" ordered="false"
upperBound="-1" eType="#//UseCase" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
upperBound="-1" eType="#//UseCase" eOpposite="#//UseCase/subject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="representation" eType="#//CollaborationOccurrence"
resolveProxies="false">
<eAnnotations source="subsets" references="#//Classifier/occurrence"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References a collaboration occurrence which indicates the collaboration that represents this classifier. (Subsets Classifier.occurrence.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" ordered="false"
upperBound="-1" eType="#//CollaborationOccurrence" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the collaboration occurrences owned by the classifier. (Subsets Element. ownedElement.)"/>
</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:EReference" name="featuringClassifier" ordered="false"
upperBound="-1" eType="#//Classifier" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//Classifier/feature">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Classifiers that have this Feature as a feature. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether the feature is applied at the classifier-level (true) or the instance-level (false). Default value is false."/>
</eAnnotations>
</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 “xor” 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. 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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;not constrainedElement->includes(self)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="context" eType="#//Namespace"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Namespace that is the context for evaluating this constraint. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace"
transient="true" eOpposite="#//Namespace/ownedRule">
<eAnnotations source="subsets" references="#//Constraint/context"/>
<eAnnotations source="redefines" references="#//NamedElement/%duplicates%/namespace"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="specification" lowerBound="1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
eType="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ordered set of Elements referenced by this Constraint."/>
</eAnnotations>
</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: • public • private • protected • package "/>
</eAnnotations>
<eLiterals name="public"/>
<eLiterals name="private" value="1"/>
<eLiterals name="protected" value="2"/>
<eLiterals name="package" value="3"/>
</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="isComputable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
</contents>
<contents xsi:type="ecore:EOperation" name="booleanValue" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;value&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/booleanValue"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//Boolean">
<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="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="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="stringValue" eType="#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;value&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
</contents>
<contents xsi:type="ecore:EOperation" name="isComputable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//String"
defaultValueLiteral="">
<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="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" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
</contents>
<contents xsi:type="ecore:EOperation" name="isNull" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isNull"/>
</contents>
</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="integerValue" eType="#//Integer">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;value&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/integerValue"/>
</contents>
<contents xsi:type="ecore:EOperation" name="isComputable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//Integer">
<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="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="unlimitedValue" eType="#//UnlimitedNatural">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;value&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/unlimitedValue"/>
</contents>
<contents xsi:type="ecore:EOperation" name="isComputable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;true&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//UnlimitedNatural">
<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="BehavioralFeature" abstract="true" eSuperTypes="#//Namespace #//Feature">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior. BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if n.oclIsKindOf(BehavioralFeature)&#xD;&#xA;then&#xD;&#xA; if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xD;&#xA; then Set{}->include(self)->include(n)->isUnique( bf | bf.parameter->collect(type))&#xD;&#xA; else true&#xD;&#xA; endif&#xD;&#xA;else true&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
<eParameters name="n" eType="#//NamedElement"/>
<eParameters name="ns" eType="#//Namespace"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" upperBound="-1"
eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the parameters of the BehavioralFeature. Subsets Namespace::member. This is a derived union and is ordered."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="formalParameter" ordered="false"
upperBound="-1" eType="#//Parameter" containment="true">
<eAnnotations source="subsets" references="#//BehavioralFeature/parameter #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature. Subsets BehavioralFeature::parameter and Namespace::ownedMember."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="returnResult" upperBound="-1"
eType="#//Parameter" containment="true">
<eAnnotations source="subsets" references="#//BehavioralFeature/parameter #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the ordered set of return results of this BehavioralFeature. Subsets Behavioral- Feature::parameter and Namespace::ownedMember."/>
</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 operation."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" eType="#//Boolean">
<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. Communications"/>
</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" eType="#//CallConcurrencyKind"/>
</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 specify the structure of instances of the classifier. Structural feature is an abstract metaclass. By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the set of values associated with an instantiation of the structural feature. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" 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. Default is false."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//PackageableElement #//DeploymentTarget #//DeployedArtifact">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact. "/>
</eAnnotations>
<eOperations name="slots_are_defined" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;slot->forAll(s |&#xD;&#xA; classifier->exists(c | c.allFeatures()->includes(s.definingFeature))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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_duplicate_slots" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;classifier->forAll(c |&#xD;&#xA;&#x9;(c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)&#xD;&#xA;&#x9;)&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="slot" ordered="false" upperBound="-1"
eType="#//Slot" containment="true" eOpposite="#//Slot/owningInstance">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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. Subsets Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<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="specification" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A specification of how to compute, derive, or construct the instance. Subsets Element:: ownedElement."/>
</eAnnotations>
</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="owningInstance" lowerBound="1"
eType="#//InstanceSpecification" transient="true" eOpposite="#//InstanceSpecification/slot">
<eAnnotations source="subsets" references="#//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The instance specification that owns this slot. Subsets Element::owner."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="definingFeature" 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>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="instance" 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="RedefinableElement" abstract="true"
eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
upperBound="-1" eType="#//RedefinableElement" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="redefinable element that is being redefined by this element. This is a derived union."/>
</eAnnotations>
</contents>
</eAnnotations>
<eOperations name="redefinition_context_valid" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.redefinedElement->forAll(re | re.isConsistentWith(self))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;false&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="redefinee" eType="#//RedefinableElement"/>
</eOperations>
<eOperations name="isRedefinitionContextValid" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r)))&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="redefinable" eType="#//RedefinableElement"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" upperBound="-1"
eType="#//Classifier" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="union"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the contexts that this element may be redefined from. This is a derived union."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" 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. Default value is false."/>
</eAnnotations>
</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. Package PowerTypes (“PowerTypes” on page 109) A generalization can be designated as being a member of a particular generalization set. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="specific" lowerBound="1"
eType="#//Classifier" transient="true" eOpposite="#//Classifier/generalization">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the specializing classifier in the Generalization relationship. Subsets DirectedRelationship::source and Element::owner. Package PowerTypes (“PowerTypes” on page 109) • generalizationSet Designates a set in which instances of Generalization is considered members."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="general" lowerBound="1"
eType="#//Classifier">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the general classifier in the Generalization relationship. Subsets DirectedRelationship::target."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubstitutable" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Indicates whether the specific classifier can be used whereever 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="generalizationSet" ordered="false"
upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/generalization"/>
</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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="packageableElement_visibility"
eType="#//VisibilityKind" volatile="true">
<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. Redefines NamedElement::visibility."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//NamedElement/visibility"/>
</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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.visibility = #public or self.visibility = #private&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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" eType="#//String">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A query based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;if self.alias->notEmpty() then &#xD;&#xA; self.alias&#xD;&#xA;else&#xD;&#xA; self.importedElement.name&#xD;&#xA;endif&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" eType="#//VisibilityKind">
<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" eType="#//String"
defaultValueLiteral="">
<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 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" lowerBound="1"
eType="#//PackageableElement">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<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. Subsets DirectedRelationship::target."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" lowerBound="1"
eType="#//Namespace" transient="true" eOpposite="#//Namespace/elementImport">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package. Subsets DirectedRelationship::source and Element::owner."/>
</eAnnotations>
</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="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An invariant constraint based on the following OCL expression:&#xD;&#xA;&lt;code>&#xD;&#xA;self.visibility = #public or self.visibility = #private&#xD;&#xA;&lt;/code>"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore: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" eType="#//VisibilityKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the visibility of the imported PackageableElements within the import-ing 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. By default, the value of visibility is public."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" lowerBound="1"
eType="#//Package">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Package whose members are imported into a Namespace. Subsets DirectedRelationship::target."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" lowerBound="1"
eType="#//Namespace" transient="true" eOpposite="#//Namespace/packageImport">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the Namespace that imports the members from a Package. Subsets DirectedRelationship::source and Element::owner."/>
</eAnnotations>
</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 the association may have the same type. When a property is owned by an association it represents a non-navigable end of the association. In this case the property does not appear in the namespace of any of the associated classifiers. When a property at an end of an association is owned by one of the associated classifiers it represents a navigable end of the association. In this case the property is also an attribute of the associated classifier. Only binary associations may have navigable ends. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" 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. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
eType="#//Property" containment="true" eOpposite="#//Property/owningAssociation">
<eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The non-navigable ends that are owned by the association itself. This is an ordered association. Subsets Association::memberEnd, Classifier::feature, and Namespace::owned- Member."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="endType" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Type" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
<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>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="memberEnd" lowerBound="2"
upperBound="-1" eType="#//Property" eOpposite="#//Property/association">
<eAnnotations source="subsets" references="#//Namespace/member"/>
<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. Subsets Namespace::member."/>
</eAnnotations>
</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 relationship between two packages, where the contents of the target package (the one pointed at) is merged with the contents of the source package through specialization and redefinition, where applicable. This is a mechanism that should be used when elements of the same name are intended to represent the same concept, regardless of the package in which they are defined. A merging package will take elements of the same kind with the same name from one or more packages and merge them together into a single element using generalization and redefinitions. It should be noted that a package merge can be viewed as a short-hand way of explicitly defining those generalizations and redefinitions. The merged packages are still available, and the elements in those packages can be separately qualified. From an XMI point of view, it is either possible to exchange a model with all PackageMerges retained or a model where all PackageMerges have been transformed away (in which case package imports, generalizations, and redefinitions are used instead). "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="mergingPackage" lowerBound="1"
eType="#//Package" transient="true" eOpposite="#//Package/packageMerge">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
<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 target of the PackageMerge. Subsets Element::owner and DirectedRelationship::source."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" lowerBound="1"
eType="#//Package">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Package that is to be merged with the source of the PackageMerge. Subsets DirectedRelationship;;target."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class"/>
<eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedStereotype" ordered="false"
upperBound="-1" eType="#//Stereotype" changeable="false" volatile="true" transient="true"
derived="true" resolveProxies="false">
<eAnnotations source="subsets" references="#//Package/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="metaclassReference" ordered="false"
upperBound="-1" eType="#//ElementImport" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/elementImport"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="metamodelReference" ordered="false"
upperBound="-1" eType="#//PackageImport" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/packageImport"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//PackageImport">
<eStructuralFeatures xsi:type="ecore:EReference" name="importedProfile" lowerBound="1"
eType="#//Profile">
<eAnnotations source="subsets" references="#//PackageImport/importedPackage"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Extension" eSuperTypes="#//Association">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1" eType="#//ExtensionEnd"
containment="true">
<eAnnotations source="redefines" references="#//Association/ownedEnd"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" eType="#//Boolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="metaclass" lowerBound="1"
eType="#//Class" changeable="false" volatile="true" transient="true" derived="true"
eOpposite="#//Class/extension"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExtensionEnd" eSuperTypes="#//Property">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="type" eType="#//Type">
<eAnnotations source="redefines" references="#//TypedElement/type"/>
</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: • in Indicates that parameter values are passed into the behavioral element by the caller. • 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. • out Indicates that parameter values are passed from a behavioral element out to the caller. • return Indicates that parameter values are passed as return values from a behavioral element back to the caller. "/>
</eAnnotations>
<eLiterals name="in"/>
<eLiterals name="inout" value="1"/>
<eLiterals name="out" value="2"/>
<eLiterals name="return" value="3"/>
</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: • none Indicates that the property has no aggregation. • shared Indicates that the property has a shared aggregation. • 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"/>
<eLiterals name="shared" value="1"/>
<eLiterals name="composite" value="2"/>
</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. 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. 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. As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as “invocating” the behavior, an instantiated behavior is also called a behavior “execution.” 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. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReentrant" eType="#//Boolean">
<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="context" eType="#//BehavioredClassifier"
transient="true" eOpposite="#//BehavioredClassifier/ownedBehavior">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The classifier owning the behavior. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedBehavior" ordered="false"
upperBound="-1" eType="#//Behavior">
<eAnnotations source="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="specification" 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>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" upperBound="-1"
eType="#//Parameter" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<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. (Specializes Namespace.owned- Member.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="formalParameter" upperBound="-1"
eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="returnResult" upperBound="-1"
eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
upperBound="-1" eType="#//Constraint" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
upperBound="-1" eType="#//Constraint" resolveProxies="false">
<eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
upperBound="-1" eType="#//ParameterSet" containment="true"/>
</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 classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
upperBound="-1" eType="#//Behavior" containment="true" eOpposite="#//Behavior/context">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References behavior specifications owned by a classifier. (Specializes Namespace.owned- Member.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" eType="#//Behavior"
resolveProxies="false">
<eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself. (Specializes BehavioredClassifier.ownedBehavior.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="implementation" ordered="false"
upperBound="-1" eType="#//Implementation" containment="true" eOpposite="#//Implementation/implementingClassifier">
<eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specializes Element.ownedElement and Realization.clientDependency.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedTrigger" ordered="false"
upperBound="-1" eType="#//Trigger" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedStateMachine" ordered="false"
upperBound="-1" eType="#//StateMachine" containment="true" eOpposite="#//StateMachine/stateMachine_redefinitionContext">
<eAnnotations source="redefines" references="#//BehavioredClassifier/ownedBehavior"/>
</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 contains a language-specific text string used to describe a computation, and an optional specification of the language. OCL, natural language, or programming languages may be used to specify an activity. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A textual representation of the computation in the surface language determined by the language attribute."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="language" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the language in which the body of the activity is stated. The interpretation of the expression body depends on the language."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/activity">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
upperBound="-1" eType="#//ActivityGroup" containment="true" eOpposite="#//ActivityGroup/activityGroup_activity">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/activity">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="action" upperBound="-1"
eType="#//Action" resolveProxies="false">
<eAnnotations source="subsets" references="#//Activity/node"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
upperBound="-1" eType="#//StructuredActivityNode" changeable="false" volatile="true"
transient="true" derived="true" resolveProxies="false">
<eAnnotations source="subsets" references="#//Activity/node #//Activity/group"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleExecution" eType="#//Boolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" eType="#//Boolean"
defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Permission" eSuperTypes="#//Dependency">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Permission signifies granting of access rights from the supplier model element to a client model element. Or to put it another way, it signifies that the client requires access to some or all of the constituent elements of the supplier. The supplier element gives the client permission to access some or all of its constituents elements. "/>
</eAnnotations>
</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="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 that is affected by the supplier element. In some cases (such as a Trace Abstraction) the direction is unimportant and serves only to distinguish the two elements."/>
</eAnnotations>
</eStructuralFeatures>
<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="Designates the element that is unaffected by a change. In a two-way relationship (such as some Refinement Abstractions) this would be the more general element. In an undirected situation, such as a Trace Abstraction, the choice of client and supplier is not relevant."/>
</eAnnotations>
</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. "/>
</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" eType="#//OpaqueExpression"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="In the metamodel, a Realization is a subtype of Dependencies::Realization. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="abstraction" eType="#//Component"
transient="true" eOpposite="#//Component/realization">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner #//Dependency/client"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="realizingClassifier" lowerBound="1"
eType="#//Classifier">
<eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
</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" lowerBound="1"
eType="#//Classifier">
<eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specializes Dependency.target.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="substitutingClassifier"
lowerBound="1" eType="#//Classifier" transient="true" eOpposite="#//Classifier/substitution">
<eAnnotations source="subsets" references="#//Dependency/client #//DirectedRelationship/source"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specializes Dependency.client.)"/>
</eAnnotations>
</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., a subclass). "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isCovering" eType="#//Boolean">
<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. 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 AmericanPerson, 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" eType="#//Boolean">
<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 Generalization- Set 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" eType="#//Classifier"
eOpposite="#//Classifier/powertypeExtent"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
upperBound="-1" eType="#//Generalization" eOpposite="#//Generalization/generalizationSet"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AssociationClass" eSuperTypes="#//Class #//Association">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="In the metamodel, an AssociationClass is a declaration of a semantic relationship between Classifiers, which has a set of features of its own. AssociationClass is both an Association and a Class. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InformationItem" eSuperTypes="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An information Item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information at a very abstract way, which is cannot be instanciated. One purpose of Information Items is to be able to define preliminary models, before having taken detailed modeling decisions on types or stuctures. One other purpose of information items and information flows is to abstract complex models by a less precise but more general representation of the information exchanged betwen entities of a system. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="represented" ordered="false"
upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=": Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers. Customer Company Employee product wage &lt;&lt;flow>> &lt;&lt;flow>>"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InformationFlow" eSuperTypes="#//PackageableElement #//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Information Flow specifies that one or more information items circulate from its sources to its targets. Information flows require some kind of “information channel” for transmitting information items from the source to the destination. An information channel is repersented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the two, and so on. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="realization" ordered="false"
upperBound="-1" eType="#//Relationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=": Determines which Relationship will realize the specified flow"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="conveyed" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=": Specifies the information items that may circulate on this information flow."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="viewpoint" eType="#//String"
defaultValueLiteral="">
<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="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>
<eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" eType="#//Property"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="role" 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."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" eType="#//Property"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
eSuperTypes="#//NamedElement #//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 are owned by a containing classifier instance. Connectable elements may be joined by attached connectors and specify configurations of linked instances to be created within an instance of the containing classifier. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="end" ordered="false" 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="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 "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" 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="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="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. 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. (Subsets Element.redefinedElement.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
eType="#//ConnectorEnd" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A connector consists of at two connector ends, each of which represents the participation of instances of the classifiers typing the connectable elements attached to this end. The set of connector ends is ordered. (Subsets Element.ownedElement.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ConnectorKind"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
upperBound="-1" eType="#//Behavior"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true">
<eAnnotations source="subsets" references="#//StructuredClassifier/role #//Classifier/attribute #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the properties owned by the classifier. (Subsets StructuredClassifier.role, Classifier. attribute,and Namespace.ownedMember)"/>
</eAnnotations>
</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" volatile="true" transient="true"
derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Namespace/member"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the roles that instances may play in this classifier. (Abstract union; subsets Classifier.feature.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
upperBound="-1" eType="#//Connector" containment="true">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the connectors owned by the classifier. (Subsets Classifier.feature and Namespace.ownedMember)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" abstract="true" eSuperTypes="#//RedefinableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="activity" eType="#//Activity"
transient="true" eOpposite="#//Activity/edge">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
eType="#//ActivityNode" eOpposite="#//ActivityNode/outgoing"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//ActivityNode" eOpposite="#//ActivityNode/incoming"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="guard" lowerBound="1" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
upperBound="-1" eType="#//ActivityEdge">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" eType="#//StructuredActivityNode"
transient="true" eOpposite="#//StructuredActivityNode/containedEdge">
<eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Structured activity node containing the edge."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/containedEdge">
<eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="weight" lowerBound="1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="interrupts" eType="#//InterruptibleActivityRegion"
eOpposite="#//InterruptibleActivityRegion/interruptingEdge"/>
</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 group. They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="subgroup" ordered="false" upperBound="-1"
eType="#//ActivityGroup" changeable="false" volatile="true" transient="true"
derived="true" eOpposite="#//ActivityGroup/superGroup">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</contents>
<contents xsi:type="ecore:EReference" name="containedNode" upperBound="-1" eType="#//ActivityNode"
changeable="false" volatile="true" transient="true" derived="true" eOpposite="#//ActivityNode/inGroup"/>
<contents xsi:type="ecore:EReference" name="containedEdge" upperBound="-1" eType="#//ActivityEdge"
changeable="false" volatile="true" transient="true" derived="true" eOpposite="#//ActivityEdge/inGroup"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" eType="#//ActivityGroup"
changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="activityGroup_activity"
eType="#//Activity" transient="true" eOpposite="#//Activity/group">
<eAnnotations source="subsets" references="#//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Activity containing the group."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//ActivityNode/activity"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActivityNode" abstract="true" eSuperTypes="#//RedefinableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/source"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/target"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
upperBound="-1" eType="#//ActivityGroup" changeable="false" volatile="true"
transient="true" derived="true">
<eAnnotations source="union"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="activity" eType="#//Activity"
transient="true" eOpposite="#//Activity/node">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
upperBound="-1" eType="#//ActivityNode">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" eType="#//StructuredActivityNode"
transient="true" eOpposite="#//StructuredActivityNode/containedNode">
<eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Structured activity node containing the node."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/containedNode">
<eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/containedNode">
<eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="#//ExecutableNode">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="effect" eType="#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EReference" name="output" upperBound="-1"
eType="#//OutputPin" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="input" upperBound="-1"
eType="#//InputPin" changeable="false" volatile="true" transient="true" derived="true">
<eAnnotations source="union"/>
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="context" eType="#//Classifier"
changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="localPrecondition" ordered="false"
upperBound="-1" eType="#//Constraint" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Constraint that must be satisfied when execution is started."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="localPostcondition" ordered="false"
upperBound="-1" eType="#//Constraint" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Constraint that must be satisfied when executed is completed."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="ordering" eType="#//ObjectNodeOrderingKind"
defaultValueLiteral="FIFO">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="= FIFO 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:EReference" name="upperBound" lowerBound="1"
eType="#//ValueSpecification" containment="true">
<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" eType="#//Behavior"/>
</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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ObjectFlow" eSuperTypes="#//ActivityEdge">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isMulticast" eType="#//Boolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isMultireceive" eType="#//Boolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="transformation" eType="#//Behavior">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Changes or replaces data tokens flowing along edge."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="selection" eType="#//Behavior">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Selects tokens from a source object node."/>
</eAnnotations>
</eStructuralFeatures>
</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>
</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="See descriptions at children of final node. "/>
</eAnnotations>
</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="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>
<eStructuralFeatures xsi:type="ecore:EReference" name="decisionInput" 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="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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExecutableNode" abstract="true" eSuperTypes="#//ActivityNode">
<eStructuralFeatures xsi:type="ecore:EReference" name="handler" ordered="false"
upperBound="-1" eType="#//ExceptionHandler" containment="true" eOpposite="#//ExceptionHandler/protectedNode">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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>
</eStructuralFeatures>
</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. Output pins are object nodes and deliver values to other actions through object flows. See Pin, Action, and ObjectNode for more details. "/>
</eAnnotations>
</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. They are object nodes and receive values from other actions through object flows. See Pin, Action, and ObjectNode for more details. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pin" abstract="true" eSuperTypes="#//ObjectNode #//MultiplicityElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Pins are connected as inputs and outputs to actions. They provide values to actions and accept result values from them. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ActivityParameterNode" eSuperTypes="#//ObjectNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Activity parameters are object nodes at the beginning and end of flows, to accept inputs to an activity and provide outputs from it. (CompleteActivities) Activity parameters inherit support for streaming and exceptions from Parameter. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" 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 and providing values for."/>
</eAnnotations>
</eStructuralFeatures>
</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 to an action that does not come from an incoming object flow edge. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" 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="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. In a sense, "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true">
<eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the properties owned by the Interface. (Subsets Namespace.ownedMember and Classifier.feature.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
eType="#//Operation" containment="true">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the operations owned by the Interface. (Subsets Namespace.ownedMember and Classifier.feature.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
upperBound="-1" eType="#//Interface">
<eAnnotations source="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Subsets Element.redefinedElement.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
eType="#//Classifier" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
upperBound="-1" eType="#//Reception" containment="true">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Receptions that objects providing this interface are willing to accept. (Subsets Namespace.ownedMember and Classifier.feature.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="protocol" eType="#//ProtocolStateMachine"
containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<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>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Implementation" eSuperTypes="#//Realization">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Implementation is a specialized Realization relationship between a Classifier and an Interface. The implementation relationship signifies that the realizing classifier conforms to the contract specified by the interface. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="contract" lowerBound="1"
eType="#//Interface">
<eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Interface specifying the conformance contract. (Specializes Dependency. supplier and Relationship.target)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
lowerBound="1" eType="#//BehavioredClassifier" transient="true" eOpposite="#//BehavioredClassifier/implementation">
<eAnnotations source="subsets" references="#//Dependency/client #//DirectedRelationship/source"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the operations owned by the Interface. (Specializes Dependency.client and Relationship.source)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" eType="#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
upperBound="-1" eType="#//Artifact" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
upperBound="-1" eType="#//Manifestation" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
eType="#//Operation" containment="true">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true">
<eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/%duplicates%/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" lowerBound="1"
eType="#//PackageableElement">
<eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
<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. This association specializes the supplier association."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Actor" eSuperTypes="#//Classifier">
<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. 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. Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier. "/>
</eAnnotations>
</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. Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="extendedCase" lowerBound="1"
eType="#//UseCase">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the use case that is being extended. (Specializes DirectedRelationship.target.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" lowerBound="1"
eType="#//UseCase" transient="true" eOpposite="#//UseCase/extend">
<eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Constraint"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extensionLocation" lowerBound="1"
upperBound="-1" eType="#//ExtensionPoint"/>
</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 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. 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. 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. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="include" ordered="false"
upperBound="-1" eType="#//Include" containment="true" eOpposite="#//Include/includingCase">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extend" ordered="false"
upperBound="-1" eType="#//Extend" containment="true" eOpposite="#//Extend/extension">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extensionPoint" ordered="false"
upperBound="-1" eType="#//ExtensionPoint" containment="true" eOpposite="#//ExtensionPoint/useCase">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false"
upperBound="-1" eType="#//Classifier" eOpposite="#//Classifier/useCase"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="useCase" lowerBound="1"
eType="#//UseCase" transient="true" eOpposite="#//UseCase/extensionPoint"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Include" eSuperTypes="#//NamedElement #//DirectedRelationship">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Include is a DirectedRelationship between two use cases, implying that the behavior of the included use case is inserted into the behavior of the including 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 including use case may only depend on the result (value) of the included use case. This value is obtained as a result of the execution of the included use case. Note that the included use case is not optional, and is always required for the including use case to execute correctly. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="includingCase" lowerBound="1"
eType="#//UseCase" transient="true" eOpposite="#//UseCase/include">
<eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
<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. (Specializes DirectedRelationship.source.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="addition" lowerBound="1"
eType="#//UseCase">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the use case that is to be included. (Specializes DirectedRelationship.target.)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CollaborationOccurrence" eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A collaboration occurrence represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration occurrence indicates a set of roles and connectors that cooperate within the classifier according to a given collaboration, indicated by the type of the collaboration occurrence. 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. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="type" 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 occurrence."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="roleBinding" ordered="false"
upperBound="-1" eType="#//Dependency" containment="true">
<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. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="collaborationRole" ordered="false"
upperBound="-1" eType="#//ConnectableElement">
<eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
</eStructuralFeatures>
</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. 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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" 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 (see “BehavioredClassifier (from BasicBehaviors)” on page 387). 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. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" 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. The default value for this attribute is true."/>
</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="subsets" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
<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. (Subsets Element.redefinedElement.)"/>
</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="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."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="protocol" 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="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" containment="true">
<eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/%duplicates%/ownedMember"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References a set of ports that an encapsulated classifier owns. (Subsets Classifier.feature and Namespace.ownedMember.)"/>
</eAnnotations>
</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: • 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. • 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. • concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently. "/>
</eAnnotations>
<eLiterals name="sequential"/>
<eLiterals name="guarded" value="1"/>
<eLiterals name="concurrent" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CallTrigger" eSuperTypes="#//MessageTrigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A call trigger represents the reception of a request to invoke a specific operation and specifies a call event. 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" 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 that is specified by the call trigger."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="MessageTrigger" abstract="true" eSuperTypes="#//Trigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A message trigger specifies the an observable event caused by a either a call or a signal. MessageTrigger is an abstract metaclass. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChangeTrigger" eSuperTypes="#//Trigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A change trigger specifies an event that occurs when a Boolean-valued expression becomes true as a result of a change in value of one or more attributes or associations. A change event is raised implicitly and is not the result of an explicit action. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="changeExpression" lowerBound="1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Trigger" abstract="true" eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A trigger specifies the 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. Trigger is an abstract metaclass. "/>
</eAnnotations>
<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="Specifies the ports at which a communication that caused an event may have arrived."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="signal" 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 type of send request instances communicated between objects. The receiving object handles the signal instance as specified by its receptions. The data carried by a send request and passed to it by the occurrence of the send invocation event that caused the request is represented as attributes of the signal instance. A signal is defined independently of the classifiers handling the signal. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
eType="#//Property" containment="true">
<eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SignalTrigger" eSuperTypes="#//MessageTrigger">
<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" upperBound="-1"
eType="#//Signal"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeTrigger" eSuperTypes="#//Trigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A time trigger specifies a time event, which models the expiration of a specific deadline. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isRelative" eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether it is relative or absolute time."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="when" lowerBound="1" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the corresponding time deadline."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AnyTrigger" eSuperTypes="#//MessageTrigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An AnyTrigger for a given state specifies that the transition is triggered for all applicable message triggers except for those specified explicitly on other transitions for this state. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//ConnectableElement #//TypedElement #//MultiplicityElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A variable is considered a connectable element. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="scope" lowerBound="1" eType="#//StructuredActivityNode"
transient="true" eOpposite="#//StructuredActivityNode/variable">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="activity" eType="#//Activity" changeable="false"
volatile="true" transient="true" derived="true" resolveProxies="false" eOpposite="#//Activity/structuredNode">
<eAnnotations source="redefines" references="#//ActivityNode/activity #//ActivityGroup/activityGroup_activity"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
upperBound="-1" eType="#//Variable" containment="true" eOpposite="#//Variable/scope">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" upperBound="-1"
eType="#//ActivityNode" containment="true" eOpposite="#//ActivityNode/inStructuredNode">
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/containedNode"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" upperBound="-1"
eType="#//ActivityEdge" containment="true" eOpposite="#//ActivityEdge/inStructuredNode">
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/containedEdge"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mustIsolate" eType="#//Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConditionalNode" eSuperTypes="#//StructuredActivityNode">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDeterminate" eType="#//Boolean"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isAssured" eType="#//Boolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="clause" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Clause" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of output pins that constitute the data flow outputs of the conditional."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Clause" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="test" ordered="false" upperBound="-1"
eType="#//ActivityNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" upperBound="-1"
eType="#//ActivityNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="predecessorClause" ordered="false"
upperBound="-1" eType="#//Clause" eOpposite="#//Clause/successorClause"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="successorClause" ordered="false"
upperBound="-1" eType="#//Clause" eOpposite="#//Clause/predecessorClause"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="decider" lowerBound="1"
eType="#//OutputPin"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" ordered="false"
upperBound="-1" eType="#//OutputPin">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of output pins within the body fragment whose values are copied to the result pins of the containing conditional node or conditional node after execution of the clause body."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LoopNode" eSuperTypes="#//StructuredActivityNode">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isTestedFirst" eType="#//Boolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="bodyPart" ordered="false"
upperBound="-1" eType="#//ActivityNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="setupPart" ordered="false"
upperBound="-1" eType="#//ActivityNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="decider" lowerBound="1"
eType="#//OutputPin"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="test" ordered="false" upperBound="-1"
eType="#//ActivityNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of output pins that constitute the data flow output of the entire loop."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="loopVariable" upperBound="-1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of output pins owned by the loop that hold the values of the loop variables during an execution of the loop. When the test fails, the values are copied to the result pins of the loop."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" ordered="false"
upperBound="-1" eType="#//OutputPin">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of output pins within the body fragment the values of which are copied to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="loopVariableInput" upperBound="-1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of values that are copied into the loop variable pins before the first iteration of the loop."/>
</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="The point is that the InteractionConstraint &quot;received&quot; from StructuralArchitecture will consist of a set of such units described by sequence diagrams (or collaboration diagrams)."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="lifeline" ordered="false"
upperBound="-1" eType="#//Lifeline" containment="true" eOpposite="#//Lifeline/interaction">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
upperBound="-1" eType="#//Message" containment="true" eOpposite="#//Message/interaction">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingInteraction"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="formalGate" ordered="false"
upperBound="-1" eType="#//Gate" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
<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 InteractionOccurrences which reference it."/>
</eAnnotations>
</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="An InteractionFragment is a general class that holds the common parts of CompositeFragment, AtomicFragment and InteractionExpressionOperand.&#xD;&#xA;Conceptually it is very much the same as a full sequence diagram, but a fragment is not named and must be referred then through structure."/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="covered" upperBound="-1"
eType="#//Lifeline" eOpposite="#//Lifeline/coveredBy"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="generalOrdering" ordered="false"
upperBound="-1" eType="#//GeneralOrdering" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="enclosingInteraction" eType="#//Interaction"
transient="true" eOpposite="#//Interaction/fragment"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="enclosingOperand" eType="#//InteractionOperand"
transient="true" eOpposite="#//InteractionOperand/fragment">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="operand enclosing this InteractionFragment (they may nest recursively)"/>
</eAnnotations>
</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. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="coveredBy" ordered="false"
upperBound="-1" eType="#//InteractionFragment" eOpposite="#//InteractionFragment/covered"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="represents" lowerBound="1"
eType="#//ConnectableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the ConnectableElement within the classifier that contains the enclosing interaction."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="interaction" lowerBound="1"
eType="#//Interaction" transient="true" eOpposite="#//Interaction/lifeline">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Interaction enclosing this Lifeline."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="selector" eType="#//OpaqueExpression"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" eType="#//PartDecomposition"/>
</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 defines a particular communication between Lifelines of an Interaction. A Message is a NamedElement that defines one specific kind of communication in 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 ExecutionOccurrence, but also the sender and the receiver. A Message associates normally two EventOccurrences - one sending EventOccurrence and one receiving EventOccurrence. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="messageKind" eType="#//MessageKind"
changeable="false" volatile="true" transient="true" 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) complete = sendEvent and receiveEvent are present lost = sendEvent present and receiveEvent absent found = sendEvent absent and receiveEvent present unknown = sendEvent and receiveEvent absent (should not appear)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="messageSort" eType="#//MessageSort"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="receiveEvent" eType="#//MessageEnd"
eOpposite="#//MessageEnd/receiveMessage">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the Receiving of the Message"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="sendEvent" eType="#//MessageEnd"
eOpposite="#//MessageEnd/sendMessage">
<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" 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" lowerBound="1"
eType="#//Interaction" transient="true" eOpposite="#//Interaction/message">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The enclosing Interaction owning the Message"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="signature" eType="#//NamedElement">
<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)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
upperBound="-1" eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="arguments of the Message"/>
</eAnnotations>
</eStructuralFeatures>
</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 Eventoccurrences, to describe that one Eventoccurrence must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of EventOccurrences that may otherwise not have a specified order. A GeneralOrdering is a specialization of NamedElement. A GeneralOrdering may appear anywhere in an Interaction, but only between Eventoccurrences. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="before" lowerBound="1"
eType="#//EventOccurrence" eOpposite="#//EventOccurrence/toAfter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Eventoccurrence referred comes before the Eventoccurrence referred by after"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="after" lowerBound="1" eType="#//EventOccurrence"
eOpposite="#//EventOccurrence/toBefore">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The Eventoccurrence referred comes after the Eventoccurrence referred by before"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MessageKind">
<eLiterals name="complete"/>
<eLiterals name="lost" value="1"/>
<eLiterals name="found" value="2"/>
<eLiterals name="unknown" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="MessageSort">
<eLiterals name="synchCall"/>
<eLiterals name="synchSignal" value="1"/>
<eLiterals name="asynchCall" value="2"/>
<eLiterals name="asynchSignal" value="3"/>
</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="receiveMessage" eType="#//Message"
eOpposite="#//Message/receiveEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the Message that contains the information of a receiveEvent"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="sendMessage" eType="#//Message"
eOpposite="#//Message/sendEvent">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Message that contains the information of a sendEvent"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EventOccurrence" eSuperTypes="#//InteractionFragment #//MessageEnd">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="EventOccurrences represents moments in time to which Actions are associated. An EventOccurrence is the basic semantic unit of Interactions. The sequences of Eventoccurrences are the meanings of Interactions. Messages are sent through either asynchronous signal sending or operation calls. Likewise they are recieved by Receptions or actions of consumption. EventOccurrence is a specialization of InteractionFragment and of MessageEnd. EventOccurrences are ordered along a Lifeline. The namespace of an EventOccurrence is the Interaction in which it is contained. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="covered" upperBound="-1" eType="#//Lifeline">
<eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="startExec" ordered="false"
upperBound="-1" eType="#//ExecutionOccurrence" eOpposite="#//ExecutionOccurrence/start"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="finishExec" ordered="false"
upperBound="-1" eType="#//ExecutionOccurrence" eOpposite="#//ExecutionOccurrence/finish"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="toAfter" ordered="false"
upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/before"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="toBefore" ordered="false"
upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/after"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExecutionOccurrence" eSuperTypes="#//InteractionFragment">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An ExecutionOccurrence is an instantiation of a unit of behavior within the Lifeline. Since the ExecutionOccurrence will have some duration, it is represented by two Eventoccurrences, the start EventOccurrence and the finish EventOccurrence. An ExecutionOccurrence is an InteractionFragment. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="start" lowerBound="1" eType="#//EventOccurrence"
eOpposite="#//EventOccurrence/startExec">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Eventoccurrence that designates the start of the Action"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="finish" lowerBound="1"
eType="#//EventOccurrence" eOpposite="#//EventOccurrence/finishExec">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the Eventoccurrence that designates the finish of the Action."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="behavior" upperBound="-1"
eType="#//Behavior">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="References the associated 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" upperBound="-1" eType="#//Lifeline">
<eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="invariant" lowerBound="1"
eType="#//Constraint" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Constraint that should hold at runtime for this StateInvariant"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Stop" eSuperTypes="#//EventOccurrence">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A Stop is an EventOccurrence that defines the termination of the instance specified by the Lifeline on which the Stop occurs. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TemplateSignature is owned by a TemplateableElement and has one or more TemplateParameters that define the signature for binding this template. A TemplateSignature may reference a set of nested template signatures to reflect the hierarchical nature of a template. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
lowerBound="1" upperBound="-1" eType="#//TemplateParameter">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The complete set of formal template parameters for this template signature."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" ordered="false"
upperBound="-1" eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/signature">
<eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateSignature/parameter"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The formal template parameters that are owned by this template signature. Subsets parameter and Element::ownedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedSignature" ordered="false"
upperBound="-1" eType="#//TemplateSignature" eOpposite="#//TemplateSignature/nestingSignature"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestingSignature" eType="#//TemplateSignature"
eOpposite="#//TemplateSignature/nestedSignature"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="template" lowerBound="1"
eType="#//TemplateableElement" transient="true" eOpposite="#//TemplateableElement/ownedTemplateSignature">
<eAnnotations source="subsets" references="#//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="element that owns this template signature. Subsets Element::owner."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="signature" lowerBound="1"
eType="#//TemplateSignature" transient="true" eOpposite="#//TemplateSignature/ownedParameter">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" lowerBound="1"
eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
eType="#//ParameterableElement" containment="true" eOpposite="#//ParameterableElement/owningParameter">
<eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/parameteredElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="default" eType="#//ParameterableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="element that is the default for this formal template parameter."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" eType="#//ParameterableElement"
containment="true">
<eAnnotations source="subsets" references="#//TemplateParameter/default #//Element/ownedElement"/>
</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 often referred to as a bound element. "/>
</eAnnotations>
<eOperations name="parameterableElements" eType="#//Set"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/boundElement">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="optional bindings from this element to templates."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
eType="#//TemplateSignature" containment="true" eOpposite="#//TemplateSignature/template">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringExpression" eSuperTypes="#//TemplateableElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="subExpression" ordered="false"
upperBound="-1" eType="#//StringExpression" containment="true" eOpposite="#//StringExpression/owningExpression">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="owningExpression" eType="#//StringExpression"
transient="true" eOpposite="#//StringExpression/subExpression">
<eAnnotations source="subsets" references="#//Element/owner"/>
</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. ParameterableElement is an abstract metaclass. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" eType="#//TemplateParameter"
eOpposite="#//TemplateParameter/parameteredElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="owningParameter" eType="#//TemplateParameter"
transient="true" eOpposite="#//TemplateParameter/ownedParameteredElement">
<eAnnotations source="subsets" references="#//Element/owner #//ParameterableElement/templateParameter"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" lowerBound="1"
eType="#//TemplateableElement" transient="true" eOpposite="#//TemplateableElement/templateBinding">
<eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="element that is bound by this binding. Subsets DirectedRelationship::source."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="signature" lowerBound="1"
eType="#//TemplateSignature">
<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="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="parameter substitutions owned by this template binding. Subsets Element::ownedElement."/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="formal" 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="templateBinding" lowerBound="1"
eType="#//TemplateBinding" transient="true" eOpposite="#//TemplateBinding/parameterSubstitution">
<eAnnotations source="subsets" references="#//Element/owner"/>
</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="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="subsets" references="#//TemplateParameterSubstitution/actual #//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The actual parameters that are owned by this substitution. Subsets Element:: ownedElement and actual."/>
</eAnnotations>
</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>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="allowSubstitutable" eType="#//Boolean"
defaultValueLiteral="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="the required relationship between an actual parameter and the parameteredElement for this formal parameter. Default is true."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterableClassifier" abstract="true"
eSuperTypes="#//Classifier"/>
<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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateableClassifier" abstract="true"
eSuperTypes="#//Classifier"/>
<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>
</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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="JoinNode" eSuperTypes="#//ControlNode">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isCombineDuplicate" eType="#//Boolean"
defaultValueLiteral="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Tells whether tokens having objects with the same identity are combined into one by the join. Default value is true."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="joinSpec" lowerBound="1"
eType="#//ValueSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A specification giving the conditions under which the join will emit a token. Default is “and”."/>
</eAnnotations>
</eStructuralFeatures>
</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="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="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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDimension" 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" 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="containedEdge" upperBound="-1"
eType="#//ActivityEdge" eOpposite="#//ActivityEdge/inPartition">
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/containedEdge"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" upperBound="-1"
eType="#//ActivityNode" eOpposite="#//ActivityNode/inPartition">
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/containedNode"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
upperBound="-1" eType="#//ActivityPartition" containment="true" eOpposite="#//ActivityPartition/superPartition">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/subgroup"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="superPartition" eType="#//ActivityPartition"
transient="true" eOpposite="#//ActivityPartition/subgroup">
<eAnnotations source="subsets" references="#//ActivityGroup/superGroup"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="represents" 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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExpansionNode" eSuperTypes="#//ObjectNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(ExtraStructuredActivities) An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element. A flow out of a region combines individual elements into a collection for use outside the region. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="regionAsOutput" eType="#//ExpansionRegion"
eOpposite="#//ExpansionRegion/outputElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="expansion region for which the node is an output."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="regionAsInput" eType="#//ExpansionRegion"
eOpposite="#//ExpansionRegion/inputElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="expansion region for which the node is an input."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExpansionRegion" eSuperTypes="#//StructuredActivityNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An expansion region is a strictly nested region of an activity with explicit input and outputs (modeled as ExpansionNodes). Each input is a collection of values. If there are multiple input pins, each of them must hold the same kind of collection, although the types of the elements in the different collections may vary. The expansion region is executed once for each element (or position) in the input collection. If an expansion region has outputs, they must be collections of the same kind and must contain elements of the same type as the corresponding inputs. The number of output collections at runtime can differ from the number of input collections. On each execution of the region, an output value from the region is inserted into an output collection at the same position as the input elements. If the region execution ends with no output, then nothing is added to the output collection. If all the executions provide an output to the collection, then the output collections will have the same number of elements as the input collections. The inputs and outputs to an expansion region are modeled as ExpansionNodes. From “outside” of the region, the values on these nodes appear as collections. From “inside” the region the values appear as elements of the collections. Object flow edges connect pins outside the region to input and output expansion nodes as collections. Object flow edges connect pins inside the region to input and output expansion nodes as individual elements. From the inside of the region, these nodes are visible as individual values. If an expansion node has a name, it is the name of the individual element within the region. Any object flow edges that cross the boundary of the region, without passing through expansion nodes, provide values that are fixed within the different executions of the region. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" eType="#//ExpansionKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The way in which the executions interact: parallel — all interactions are independent iterative — the interactions occur in order of the elements stream — a stream of values flows into a single execution"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="outputElement" ordered="false"
upperBound="-1" eType="#//ExpansionNode" eOpposite="#//ExpansionNode/regionAsOutput">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="inputElement" ordered="false"
lowerBound="1" upperBound="-1" eType="#//ExpansionNode" eOpposite="#//ExpansionNode/regionAsInput">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An object node that holds a separate element of the input collection during each of the multiple executions of the region."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ExpansionKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=" (ExtraStructuredActivities) ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact. "/>
</eAnnotations>
<eLiterals name="parallel"/>
<eLiterals name="iterative" value="1"/>
<eLiterals name="stream" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ExceptionHandler" eSuperTypes="#//Element">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(ExtraStructuredActivities) 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>
<eStructuralFeatures xsi:type="ecore:EReference" name="protectedNode" lowerBound="1"
eType="#//ExecutableNode" transient="true" eOpposite="#//ExecutableNode/handler">
<eAnnotations source="subsets" references="#//Element/owner"/>
<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>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="handlerBody" 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" lowerBound="1"
eType="#//ObjectNode"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="exceptionType" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Classifier"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InteractionOccurrence" eSuperTypes="#//InteractionFragment">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="InteractionOccurrence is a specialization of InteractionFragment. An InteractionOccurrence has a set of actual gates that must match the formal gates of the referenced Interaction. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="refersTo" 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="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The actual gates of the InteractionOccurrence"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
upperBound="-1" eType="#//InputPin" 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 EventOccurrence that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionOccurrences, expression gates on CombinedFragments. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PartDecomposition" eSuperTypes="#//InteractionOccurrence">
<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. 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. A PartDecomposition is a specialization of InteractionOccurrence. It associates with the ConnectableElement that it decomposes. "/>
</eAnnotations>
</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 represent one operand of the expression given by the enclosing CombinedFragment. An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be 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. InteractionOperand contains an ordered set of InteractionFragments. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="guard" eType="#//InteractionConstraint"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="of the operand"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="fragment" ordered="false"
upperBound="-1" eType="#//InteractionFragment" containment="true" eOpposite="#//InteractionFragment/enclosingOperand">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="fragments of the operand."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="minint" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="minimum number of iterations of a loop"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="maxint" eType="#//ValueSpecification"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="maximum number of iterations of a loop"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="InteractionOperator">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Interaction Operator 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"/>
<eLiterals name="alt" value="1"/>
<eLiterals name="opt" value="2"/>
<eLiterals name="break" value="3"/>
<eLiterals name="par" value="4"/>
<eLiterals name="strict" value="5"/>
<eLiterals name="loop" value="6"/>
<eLiterals name="critical" value="7"/>
<eLiterals name="neg" value="8"/>
<eLiterals name="assert" value="9"/>
<eLiterals name="ignore" value="10"/>
<eLiterals name="consider" value="11"/>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="interactionOperator" eType="#//InteractionOperator">
<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" ordered="false"
lowerBound="1" upperBound="-1" eType="#//InteractionOperand" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="set of operands of the combined fragment."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="cfragmentGate" ordered="false"
upperBound="-1" eType="#//Gate" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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>
</eStructuralFeatures>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="setting" 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="StateMachine" eSuperTypes="#//Behavior">
<eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/stateMachine">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
upperBound="-1" eType="#//Pseudostate" containment="true">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" eType="#//StateMachine">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine_redefinitionContext"
eType="#//BehavioredClassifier" transient="true" eOpposite="#//BehavioredClassifier/ownedStateMachine">
<eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="redefinitionContext" upperBound="-1"
eType="#//Classifier" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/container">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/container">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" eType="#//StateMachine"
transient="true" eOpposite="#//StateMachine/region">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State"
transient="true" eOpposite="#//State/region">
<eAnnotations source="subsets" references="#//NamedElement/%duplicates%/namespace"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" eType="#//Region">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PseudostateKind"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="redefinitionContext" upperBound="-1"
eType="#//Classifier" changeable="false" volatile="true" transient="true"
derived="true">
<eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" eType="#//Boolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" eType="#//Boolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" eType="#//Boolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" eType="#//Boolean"
changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="submachine" eType="#//StateMachine"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
upperBound="-1" eType="#//ConnectionPointReference" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" eType="#//State">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
upperBound="-1" eType="#//Trigger"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/state">
<eAnnotations source="subsets" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="entry" eType="#//Activity"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="exit" eType="#//Activity"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" eType="#//Activity"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" eType="#//Constraint"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="container" eType="#//Region"
transient="true" eOpposite="#//Region/subvertex">
<eAnnotations source="redefines" references="#//Element/owner"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The region that contains this vertex."/>
</eAnnotations>
</eStructuralFeatures>
<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>
</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>
<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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//RedefinableElement">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="redefinitionContext" 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="the classifier in which context this element may be redefined."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//TransitionKind">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="See definition of TransitionKind."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
eType="#//Region" transient="true" eOpposite="#//Region/transition">
<eAnnotations source="subsets" references="#//Element/owner"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="source" 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>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" 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" eType="#//Transition">
<eAnnotations source="redefines" references="#//RedefinableElement/%duplicates%/redefinedElement"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
upperBound="-1" eType="#//Trigger">
<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="guard" eType="#//Constraint"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<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 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>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Activity"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies an optional activity to be performed when the transition fires."/>
</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: • external • internal • local "/>
</eAnnotations>
<eLiterals name="internal"/>
<eLiterals name="local" value="1"/>
<eLiterals name="external" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
<eLiterals name="initial"/>
<eLiterals name="deepHistory" value="1"/>
<eLiterals name="shallowHistory" value="2"/>
<eLiterals name="join" value="3"/>
<eLiterals name="fork" value="4"/>
<eLiterals name="junction" value="5"/>
<eLiterals name="choice" value="6"/>
<eLiterals name="entryPoint" value="7"/>
<eLiterals name="exitPoint" value="8"/>
<eLiterals name="terminate" value="9"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//State"/>
<eClassifiers xsi:type="ecore:EClass" name="CreateObjectAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action instantiates a classifier. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifier" 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" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) Gives the output pin on which the result is put."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyLinks" eType="#//Boolean"
defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyOwnedObjects"
eType="#//Boolean" defaultValueLiteral="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) The input pin providing the object to be destroyed."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="first" lowerBound="1" eType="#//InputPin"
containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=". (Specialized from Action:input) Gives the pin on which an object is placed."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="second" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Gives the pin on which an object is placed."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) Tells whether the two input objects are identical."/>
</eAnnotations>
</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 activity, 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 activity 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 activity is associated in the user model. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) Gives the output pin on which the hosting object is placed."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeature" 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" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Gives the input pin from which the object whose structural feature is to be read or written is obtained."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) Gives the output pin on which the result is put."/>
</eAnnotations>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//InputPin"
containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Value to be added or removed from the structural feature."/>
</eAnnotations>
</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. "/>
</eAnnotations>
</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. 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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" 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" eType="#//InputPin"
containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) 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>
</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>
<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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LinkEndData" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" name="value" 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" 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" upperBound="-1"
eType="#//QualifierValue" containment="true">
<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>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) The pin on which are put the objects participating in the association at the end not specified by the inputs."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LinkEndCreationData" eSuperTypes="#//LinkEndData">
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="qualifier" upperBound="-1" eType="#//QualifierValue">
<eAnnotations source="redefines" references="#//LinkEndData/qualifier"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="= falseSpecifies whether the existing links emanating from the object on this end should be destroyed before creating a new link."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" eType="#//InputPin">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateLinkAction" eSuperTypes="#//WriteLinkAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action can be used to create links and link objects. There is no return value in either case. This is so that no change of the action is required if the association is changed to an association class or vice versa. CreateLinkAction uses a specialization of LinkEndData called LinkEndCreationData, to support ordered associations. The insertion point is specified at runtime by an additional input pin, which is required for ordered association ends and omitted for unordered ends. The insertion point is a positive integer giving the position to insert the link, or infinity, to insert at the end. Reinserting an existing end at a new position moves the end to that position. CreateLinkAction also uses LinkEndCreationData to support the destruction of existing links of the association that connect any of the objects of the new link. When the link is created, this option is available on an end-by-end basis, and causes all links of the association emanating from the specified ends to be destroyed before the new link is created. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="endData" ordered="false" lowerBound="2"
upperBound="-1" eType="#//LinkEndCreationData" containment="true">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Redefined from LinkAction:endData) Specifies ends of association and inputs."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//LinkAction/endData"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WriteLinkAction" abstract="true" eSuperTypes="#//LinkAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A write link action takes a complete identification of a link and creates or destroys it. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DestroyLinkAction" eSuperTypes="#//WriteLinkAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action destroys a link or a link object. Link objects can also be destroyed with DestroyObjectAction. The link is specified in the same way as link creation, even for link objects. This allows actions to remain unchanged when their associations are transformed from ordinary ones to association classes and vice versa. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClearAssociationAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action destroys all links of an association that have a particular object at one end. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Gives the input pin from which is obtained the object whose participation in the association is to be cleared."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="association" lowerBound="1"
eType="#//Association">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Association to be cleared."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VariableAction" abstract="true" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="VariableAction is an abstract class for actions that operate on a statically specified variable. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
eType="#//Variable">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Variable to be read."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReadVariableAction" eSuperTypes="#//VariableAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action reads the values of a variables, in order if the variable is ordered. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:output) Gives the output pin on which the result is put."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WriteVariableAction" abstract="true"
eSuperTypes="#//VariableAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A write variable action operates on a variable 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 variable actions are inherited from VariableAction. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//InputPin"
containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Value to be added or removed from the variable."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClearVariableAction" eSuperTypes="#//VariableAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action removes all values of an variable. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AddVariableValueAction" eSuperTypes="#//WriteVariableAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Variables 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 variable before the new value is added. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether existing values of the variable should be removed before adding the new value."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" eType="#//InputPin"
containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Gives the position at which to insert a new value or move an existing value in ordered variables. The types is UnlimitedINatural, but the value cannot be zero. This pin is omitted for unordered variables."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RemoveVariableValueAction" eSuperTypes="#//WriteVariableAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="One value is removed from the set of possible variable values. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ApplyFunctionAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ApplyFunctionAction is an action that invokes a primitive predefined function that computes output values based only on the input values and the function. The execution does not have access to object memory or to any objects. The execution of a primitive function has no side effects on any other object. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1"
eType="#//PrimitiveFunction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The primitive function to be invoked."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" ordered="false"
upperBound="-1" eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The pins that provide inputs to the function. (Specializes Action.input.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The pins on which the results of invoking the function are returned. (Specializes Action.output.)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PrimitiveFunction" eSuperTypes="#//PackageableElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="PrimitiveFunction is not an action. It is the signature of a function that produces output values from input values for use with ApplyFunctionAction. The behavior is described using the body and language attributes. The specification of the detailed behavior is expressed in an external language and is not further specified within UML. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A textual representation of the function in the named surface language."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="language" eType="#//String"
defaultValueLiteral="">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the language in which the body of the primitive function is stated. The interpretation of the body depends on the language. If the language is unspecified, it might be implicit from the body or the context."/>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isSynchronous" 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. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<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>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="InvocationAction" abstract="true" eSuperTypes="#//Action">
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specification of an argument value that appears during execution."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="onPort" eType="#//Port"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The target object to which the signal is sent."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="signal" 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="BroadcastSignalAction" eSuperTypes="#//InvocationAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="BroadcastSignalAction is an action that transmits a signal instance to all the potential target objects in the system, which may cause the firing of a state machine transitions or the execution of associated activities of a target object. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately after the signals are sent out. It does not wait for receipt. Any reply messages are ignored and are not transmitted to the requestor. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="signal" lowerBound="1"
eType="#//Signal">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The specification of signal object transmitted to the target objects."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SendObjectAction" eSuperTypes="#//InvocationAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="SendObjectAction is an action that transmits an object to the target object, where it may invoke behavior such as the firing of state machine transitions or the execution of an activity. The value of the object is available to the execution of invoked behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="request" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="redefines" references="#//InvocationAction/argument"/>
</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 activity. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="operation" 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" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<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>
</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. 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. In particular, the invoked behavior may be an activity. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="behavior" 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="TimeExpression" eSuperTypes="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TimeExpression defines a value specification that represent a time value. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="firstTime" eType="#//Boolean"
defaultValueLiteral="True">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="True if the TimeExpression describes the first point in time of the NamedElement referenced by event, in cases where the NamedElement describes something which extends in time. False if the TimeExpression describes the last point in time for the referenced NamedElement."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="event" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the specification of the event occurrence that the TimeExpression describes"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Duration" eSuperTypes="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A duration defines a value specification that specifies the temporal distance between two time expressions that specify time instants. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="firstTime" eType="#//Boolean"
defaultValueLiteral="True">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="If the duration is between times of two NamedElements, there are two Boolean attributes, one for the start of the duration and one for the end of the duration. For each of these it holds that firstTime is true if the time information is associated with the first point in time of the NamedElement referenced by event, and false if it represents the last point in time of the NamedElement. If there is only one NamedElement referenced by event, then this attribute is irrelevant. The default value is true."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
upperBound="2" eType="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the specification(s) that describes the starting TimeExpression and the ending TimeExpression of the Duration. If only one NamedElement is referenced, the duration is from the first point in time of that NamedElement until the last point in time of that NamedElement."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeObservationAction" eSuperTypes="#//WriteStructuralFeatureAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TimeObservationAction defines an action that observes the current point in time. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="now" upperBound="-1" eType="#//TimeExpression"
containment="true">
<eAnnotations source="redefines" references="#//WriteStructuralFeatureAction/value"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Represents the current point in time."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurationInterval" eSuperTypes="#//Interval">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A DurationInterval defines the range between two Durations. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="max" upperBound="-1" eType="#//Duration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the Duration denoting the maximum value of the range."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Interval/max"/>
</contents>
<contents xsi:type="ecore:EReference" name="min" upperBound="-1" eType="#//Duration">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the Duration denoting the minimum value of the range."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Interval/min"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Interval" eSuperTypes="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An Interval defines the range between two value specifications. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="min" upperBound="-1" eType="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the ValueSpecification denoting the minimum value of the range."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="max" upperBound="-1" eType="#//ValueSpecification">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the ValueSpecification denoting the maximum value of the range."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeConstraint" eSuperTypes="#//IntervalConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TimeConstraint defines a Constraint that refers to a TimeInterval. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="specification" lowerBound="1" eType="#//ValueSpecification">
<eAnnotations source="redefines" references="#//Constraint/specification #//IntervalConstraint/%duplicates%/specification"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IntervalConstraint" eSuperTypes="#//Constraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A IntervalConstraint defines a Constraint that refers to an Interval. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="specification" lowerBound="1" eType="#//ValueSpecification">
<eAnnotations source="redefines" references="#//Constraint/specification"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TimeInterval" eSuperTypes="#//Interval">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A TimeInterval defines the range between two TimeExpressions. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="min" upperBound="-1" eType="#//TimeExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the TimeExpression denoting the minimum value of the range"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Interval/min"/>
</contents>
<contents xsi:type="ecore:EReference" name="max" upperBound="-1" eType="#//TimeExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Refers to the TimeExpression denoting the maximum value of the range"/>
</eAnnotations>
<eAnnotations source="redefines" references="#//Interval/max"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurationObservationAction" eSuperTypes="#//WriteStructuralFeatureAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A DurationObservationAction defines an action that observes duration in time. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="duration" upperBound="-1"
eType="#//Duration" containment="true">
<eAnnotations source="redefines" references="#//WriteStructuralFeatureAction/value"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="represent the measured Duration"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DurationConstraint" eSuperTypes="#//IntervalConstraint">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A DurationConstraint defines a Constraint that refers to a DurationInterval. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="specification" lowerBound="1" eType="#//ValueSpecification">
<eAnnotations source="redefines" references="#//Constraint/specification #//IntervalConstraint/%duplicates%/specification"/>
</contents>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataStoreNode" eSuperTypes="#//CentralBufferNode">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A data store keeps all tokens that enter it, copying them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object. "/>
</eAnnotations>
</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 (see “Parameter (as specialized)” on page 354). "/>
</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="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>
<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>
<eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" upperBound="-1"
eType="#//ActivityNode" eOpposite="#//ActivityNode/inInterruptibleRegion">
<eAnnotations source="redefines" references="#//ActivityGroup/%duplicates%/containedNode"/>
</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="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 and outputs to a behavior, exclusive of other parameter sets on the behavior. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
lowerBound="1" upperBound="-1" eType="#//Parameter" eOpposite="#//Parameter/parameterSet"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
upperBound="-1" eType="#//Constraint" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//Class">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isIndirectlyInstantiated"
eType="#//Boolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="{default = true} 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"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="realization" ordered="false"
upperBound="-1" eType="#//Realization" containment="true" eOpposite="#//Realization/abstraction">
<eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
upperBound="-1" eType="#//PackageableElement" containment="true">
<eAnnotations source="redefines" references="#//Namespace/%duplicates%/ownedMember"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
<eLiterals name="assembly"/>
<eLiterals name="delegation" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
<eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
upperBound="-1" eType="#//DeployedArtifact">
<eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="location" lowerBound="1"
eType="#//DeploymentTarget" transient="true" eOpposite="#//DeploymentTarget/deployment">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Dependency/client"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
upperBound="-1" eType="#//DeploymentSpecification" containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
</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="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A deployment target is the location for a deployed artifact. In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
upperBound="-1" eType="#//Deployment" containment="true" eOpposite="#//Deployment/location">
<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"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="nestedNode" ordered="false"
upperBound="-1" eType="#//Node" containment="true">
<eAnnotations source="redefines" references="#//Class/nestedClassifier"/>
</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. "/>
</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="A communication path is an association between two Nodes, through which Nodes are able to exchange signals and messages. In the metamodel, CommunicationPath is a subclass of Association. "/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
<eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" lowerBound="1"
eType="#//ProtocolStateMachine" transient="true" eOpposite="#//ProtocolStateMachine/conformance">
<eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
<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>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" lowerBound="1"
eType="#//ProtocolStateMachine">
<eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
<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>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
<eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
upperBound="-1" eType="#//ProtocolConformance" containment="true" eOpposite="#//ProtocolConformance/specificMachine">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value=": Conformance between protocol state machines."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ProtocolTransition" eSuperTypes="#//Transition">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A protocol transition (transition as specialized in the ProtocolStateMachines package) specifies a legal transition for an operation. Transitions of protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation (referred BehavioralFeature) that belongs to the context classifier of the protocol state machine. The protocol transition specifies that the associated (referred) operation can be called for an instance in the origin state under the initial condition (guard), and that at the end of the transition, the destination state will be reached under the final condition (post). "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="postCondition" eType="#//Constraint"
containment="true">
<eAnnotations source="subsets" references="#//Element/ownedElement"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the post condition of the transition which is the condition that should be obtained once the transition is triggered. This post condition is part of the post condition of the operation connected to the transition."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="referred" ordered="false"
upperBound="-1" eType="#//Operation" changeable="false" volatile="true" transient="true"
derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="preCondition" eType="#//Constraint"
resolveProxies="false">
<eAnnotations source="subsets" references="#//Transition/guard"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies the precondition of the transition. It specifies the condition that should be verified before triggering the transition. This guard condition added to the source state will be evaluated as part of the precondition of the operation refered by the transition if any."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReadExtentAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(CompleteActions) ReadExtentAction is an action that retrieves the current instances of a classifier. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The runtime instances of the classifier."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifier" lowerBound="1"
eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The classifier whose instances are to be retrieved."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReclassifyObjectAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Specifies whether existing classifiers should be removed before adding the new classifiers. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="oldClassifier" ordered="false"
upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A set of classifiers to be removed from the classifiers of the object."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="newClassifier" ordered="false"
upperBound="-1" eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A set of classifiers to be added to the classifiers of the object."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Holds the object to be reclassified. (Specializes Action.input.)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReadIsClassifiedObjectAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action tests the classification of an object against a given class. It can be restricted to testing direct instances. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isDirect" eType="#//Boolean"
defaultValueLiteral="false">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Indicates whether the classifier must directly classify the input object. The default value is false."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="classifier" lowerBound="1"
eType="#//Classifier">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The classifier against which the classification of the input object is tested."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="After termination of the action, will hold the result of the test. (Specializes Action.output.)"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Holds the object whose classification is to be tested. (Specializes Action.input.)"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StartOwnedBehaviorAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(CompleteActions) StartOwnedBehaviorAction is an action that starts the owned behavior of the input. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Holds the object on which to start the owned behavior. (Specializes Action.input.)"/>
</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>
<eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" lowerBound="1"
eType="#//Property"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" 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="ReadLinkObjectEndAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action reads the object on an end of a link object. The association end to retrieve the object from is specified statically, and the link object to read is provided on the input pin at run time. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="1" eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Link end to be read."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReadLinkObjectEndQualifierAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action reads a qualifier value or values on an end of a link object. The association end to retrieve the qualifier from is specified statically, and the link object to read is provided on the input pin at run time. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="object" lowerBound="1"
eType="#//InputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(Specialized from Action:input) Gives the input pin from which the link object is obtained."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Pin where the result value is placed"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" lowerBound="1"
eType="#//Property">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The attribute representing the qualifier to be read."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CreateLinkObjectAction" eSuperTypes="#//CreateLinkAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="This action is exclusively for creating links of association classes. It returns the created link object. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="endData" ordered="false" lowerBound="2"
upperBound="-1" eType="#//LinkEndCreationData" containment="true">
<eAnnotations source="redefines" references="#//LinkAction/endData #//CreateLinkAction/%duplicates%/endData"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" lowerBound="1"
eType="#//OutputPin" containment="true">
<eAnnotations source="subsets" references="#//Action/output"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
<eStructuralFeatures xsi:type="ecore:EReference" name="trigger" upperBound="-1"
eType="#//Trigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The type of event accepted by the action, as specified by a trigger. If it is a signal trigger, a signal of any subtype of the specified signal type is accepted."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
upperBound="-1" eType="#//OutputPin">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Pin holding the event object that has been received. Event objects may be copied in transmission, so identity might not be preserved."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AcceptCallAction" eSuperTypes="#//AcceptEventAction">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(CompleteActions) AcceptCallAction is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces a output token that is needed later to supply the information to the ReplyAction necessary to return control to the caller. This action is for synchronous calls. "/>
</eAnnotations>
<eAnnotations source="duplicates">
<contents xsi:type="ecore:EReference" name="trigger" upperBound="-1" eType="#//CallTrigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The operation call trigger accepted by the action."/>
</eAnnotations>
<eAnnotations source="redefines" references="#//AcceptEventAction/trigger"/>
</contents>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" lowerBound="1"
eType="#//OutputPin">
<eAnnotations source="subsets" references="#//Action/output"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Pin where a token is placed containing sufficient information to perform a subsequent reply and return control to the caller. The value in this token is opaque. It can be passed and copied but it cannot be manipulated by the model."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ReplyAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(CompleteActions) ReplyAction is an action that accepts a set of return values and a token containing return information produced by a previous accept call action. The reply action returns the values to the caller of the previous call, completing execution of the call. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="replyToCall" lowerBound="1"
eType="#//CallTrigger">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="The operation call trigger being replied to."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="replyValue" ordered="false"
upperBound="-1" eType="#//InputPin">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A list of pins containing the reply values of the operation. These values are returned to the caller."/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" lowerBound="1"
eType="#//InputPin">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A pin containing the return information token produced by an earlier AcceptCallAction."/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RaiseExceptionAction" eSuperTypes="#//Action">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="(CompleteActions) RaiseExceptionAction is an action that causes an exception to occur. The input value becomes the exception object. "/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="exception" lowerBound="1"
eType="#//InputPin">
<eAnnotations source="subsets" references="#//Action/input"/>
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="An input pin whose value becomes an exception object."/>
</eAnnotations>
</eStructuralFeatures>
</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>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="deploymentLocation" eType="#//String"
defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" eType="#//String"
defaultValueLiteral=""/>
</eClassifiers>
</ecore:EPackage>