blob: 0f045040c0dddfc3189fa38e59a04579c9812ee3 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Model xmi:id="_s-vBgBjPEdqPB8O80Bm3OQ" name="UML">
<packagedElement xmi:type="uml:Package" xmi:id="_3ADC7B74022D3E0C8A930168" name="Actions">
<packageImport xmi:id="_87aKwD9JEdqjIv4r4xIGZw" importedPackage="_3ADC7B74022D3DF124BC006D"/>
<packagedElement xmi:type="uml:Package" xmi:id="_3ADC7B74022D3DF127D50109" name="CompleteActions">
<packageImport xmi:id="_3ADC7B74022D4162B96F03C3" importedPackage="_3ADC7B74022D334A99B00208"/>
<packageImport xmi:id="_3ADC7B74022D4162B98300B5" importedPackage="_3ADC7B74022D3BAF182F0290"/>
<packageImport xmi:id="_6NdBoD9HEdqjIv4r4xIGZw" importedPackage="_3ADC7B74022D3C9FD9B900CF"/>
<packageImport xmi:id="_-OywID9HEdqjIv4r4xIGZw" importedPackage="_3ADC7B74022D335C122001A4"/>
<packageMerge xmi:id="_HR0XERTbEdqZu-3Jy1-uYg" mergedPackage="_3ADC7B74022D3DF1252E035B"/>
<packageMerge xmi:id="_4KGkcFK8EdqGjp-dS1uluA" mergedPackage="_3ADC7B74022D410C265D0152"/>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38C95C100257" name="ReadExtentAction">
<ownedComment xmi:id="_sqw_9BTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C95C100257">
<body>A read extent action is an action that retrieves the current instances of a classifier.</body>
</ownedComment>
<ownedRule xmi:id="_sqw__RTaEdqZu-3Jy1-uYg" name="type_is_classifier" constrainedElement="_3ADC7B74022D38C95C100257">
<ownedComment xmi:id="_sqw_-RTaEdqZu-3Jy1-uYg" annotatedElement="_sqw__RTaEdqZu-3Jy1-uYg">
<body>The type of the result output pin is the classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sqw__hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sqxABhTaEdqZu-3Jy1-uYg" name="multiplicity_of_result" constrainedElement="_3ADC7B74022D38C95C100257">
<ownedComment xmi:id="_sqxAAhTaEdqZu-3Jy1-uYg" annotatedElement="_sqxABhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the result output pin is 0..*.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sqxABxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(0,#null)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF408230127" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D395CFBA30150" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CFBA20393">
<ownedComment xmi:id="_sss5shTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CFBA30150">
<body>The runtime instances of the classifier.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sss5thTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sss5tRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38C95C8402C2" name="classifier" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D38C95C8303C5">
<ownedComment xmi:id="_sss5vBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C95C8402C2">
<body>The classifier whose instances are to be retrieved.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sss5wBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sss5vxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38DBEACB029B" name="ReclassifyObjectAction">
<ownedComment xmi:id="_sqxACxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DBEACB029B">
<body>A reclassify object action is an action that changes which classifiers classify an object.</body>
</ownedComment>
<ownedRule xmi:id="_sq6J4xTaEdqZu-3Jy1-uYg" name="classifier_not_abstract" constrainedElement="_3ADC7B74022D38DBEACB029B">
<ownedComment xmi:id="_sqxAEBTaEdqZu-3Jy1-uYg" annotatedElement="_sq6J4xTaEdqZu-3Jy1-uYg">
<body>None of the new classifiers may be abstract.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sq6J5BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>not self.newClassifier->exists(isAbstract = true)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sq6J7BTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D38DBEACB029B">
<ownedComment xmi:id="_sq6J6BTaEdqZu-3Jy1-uYg" annotatedElement="_sq6J7BTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sq6J7RTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.argument.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sq6J9RTaEdqZu-3Jy1-uYg" name="input_pin" constrainedElement="_3ADC7B74022D38DBEACB029B">
<ownedComment xmi:id="_sq6J8RTaEdqZu-3Jy1-uYg" annotatedElement="_sq6J9RTaEdqZu-3Jy1-uYg">
<body>The input pin has no type.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sq6J9hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.argument.type->size() = 0</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF4081F02EE" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3CCDFA2D00F4" name="isReplaceAll">
<ownedComment xmi:id="_sq6J-hTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3CCDFA2D00F4">
<body>Specifies whether existing classifiers should be removed before adding the new classifiers.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HR9hABTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38DBEB11022D" name="oldClassifier" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D38DBEB100312">
<ownedComment xmi:id="_sss5xhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DBEB11022D">
<body>A set of classifiers to be removed from the classifiers of the object.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DkxTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DkhTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38DBEB4201CA" name="newClassifier" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D38DBEB4102EB">
<ownedComment xmi:id="_ss2DmRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DBEB4201CA">
<body>A set of classifiers to be added to the classifiers of the object.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DnRTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DnBTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3DF3A5BE02BF" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3DF3A5BD03D8">
<ownedComment xmi:id="_stcgkxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DF3A5BE02BF">
<body>Holds the object to be reclassified.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stcglxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stcglhTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D39739DB102CF" name="ReadIsClassifiedObjectAction">
<ownedComment xmi:id="_sq6J_xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39739DB102CF">
<body>A read is classified object action is an action that determines whether a runtime object is classified by a given classifier.</body>
</ownedComment>
<ownedRule xmi:id="_srD64xTaEdqZu-3Jy1-uYg" name="multiplicity_of_input" constrainedElement="_3ADC7B74022D39739DB102CF">
<ownedComment xmi:id="_sq6KBBTaEdqZu-3Jy1-uYg" annotatedElement="_srD64xTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srD65BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srD67BTaEdqZu-3Jy1-uYg" name="no_type" constrainedElement="_3ADC7B74022D39739DB102CF">
<ownedComment xmi:id="_srD66BTaEdqZu-3Jy1-uYg" annotatedElement="_srD67BTaEdqZu-3Jy1-uYg">
<body>The input pin has no type.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srD67RTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.type->isEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srD69RTaEdqZu-3Jy1-uYg" name="multiplicity_of_output" constrainedElement="_3ADC7B74022D39739DB102CF">
<ownedComment xmi:id="_srD68RTaEdqZu-3Jy1-uYg" annotatedElement="_srD69RTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srD69hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srD6_hTaEdqZu-3Jy1-uYg" name="boolean_result" constrainedElement="_3ADC7B74022D39739DB102CF">
<ownedComment xmi:id="_srD6-hTaEdqZu-3Jy1-uYg" annotatedElement="_srD6_hTaEdqZu-3Jy1-uYg">
<body>The type of the output pin is Boolean</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srD6_xTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = Boolean</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF4082902E8" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D39739DEF0061" name="isDirect">
<ownedComment xmi:id="_srD7AxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39739DEF0061">
<body>Indicates whether the classifier must directly classify the input object.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HR9hARTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D39739E2C01D1" name="classifier" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D39739E2B0324">
<ownedComment xmi:id="_ss2DoxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39739E2C01D1">
<body>The classifier against which the classification of the input object is tested.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DpxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DphTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D39739EA70341" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D39739EA700DE">
<ownedComment xmi:id="_ss2DqxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39739EA70341">
<body>After termination of the action, will hold the result of the test.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DrxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DrhTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D39739E5C00B8" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D39739E5B0251">
<ownedComment xmi:id="_ss_0kRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39739E5C00B8">
<body>Holds the object whose classification is to be tested.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0lRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0lBTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3A78587C0167" name="StartClassifierBehaviorAction">
<ownedComment xmi:id="_srD7CBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A78587C0167">
<body>A start classifier behavior action is an action that starts the classifier behavior of the input.</body>
</ownedComment>
<ownedRule xmi:id="_srNr6BTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D3A78587C0167">
<ownedComment xmi:id="_srNr5BTaEdqZu-3Jy1-uYg" annotatedElement="_srNr6BTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srNr6RTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srNr8RTaEdqZu-3Jy1-uYg" name="type_has_classifier" constrainedElement="_3ADC7B74022D3A78587C0167">
<ownedComment xmi:id="_srNr7RTaEdqZu-3Jy1-uYg" annotatedElement="_srNr8RTaEdqZu-3Jy1-uYg">
<body>If the input pin has a type, then the type must have a classifier behavior.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srNr8hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF4084103AB" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3A7858D00276" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3A7858D00028">
<ownedComment xmi:id="_ss_0mxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A7858D00276">
<body>Holds the object on which to start the owned behavior.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0nxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0nhTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38C965F70052" name="QualifierValue">
<ownedComment xmi:id="_srNr9hTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C965F70052">
<body>A qualifier value is not an action. It is an element that identifies links. It gives a single qualifier within a link end data specification.</body>
</ownedComment>
<ownedRule xmi:id="_srNr_xTaEdqZu-3Jy1-uYg" name="qualifier_attribute" constrainedElement="_3ADC7B74022D38C965F70052">
<ownedComment xmi:id="_srNr-xTaEdqZu-3Jy1-uYg" annotatedElement="_srNr_xTaEdqZu-3Jy1-uYg">
<body>The qualifier attribute must be a qualifier of the association end of the link-end data.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srNsABTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srW10BTaEdqZu-3Jy1-uYg" name="type_of_qualifier" constrainedElement="_3ADC7B74022D38C965F70052">
<ownedComment xmi:id="_srNsBBTaEdqZu-3Jy1-uYg" annotatedElement="_srW10BTaEdqZu-3Jy1-uYg">
<body>The type of the qualifier value input pin is the same as the type of the qualifier attribute.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srW10RTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.type = self.qualifier.type</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srW12RTaEdqZu-3Jy1-uYg" name="multiplicity_of_qualifier" constrainedElement="_3ADC7B74022D38C965F70052">
<ownedComment xmi:id="_srW11RTaEdqZu-3Jy1-uYg" annotatedElement="_srW12RTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the qualifier value input pin is &quot;1..1&quot;.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srW12hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3C32A13B036E" general="_3ADC7B74022D3CAAEC0D0176"/>
<ownedAttribute xmi:id="_3ADC7B74022D38C966870334" name="qualifier" type="_3ADC7B74022D3CC0DAE103AD" association="_3ADC7B74022D38C9668602D9">
<ownedComment xmi:id="_ss_0rxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C966870334">
<body>Attribute representing the qualifier for which the value is to be specified.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0sxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0shTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38C966B200C9" name="value" type="_3ADC7B74022D384B237E021A" association="_3ADC7B74022D38C966AF03DC">
<ownedComment xmi:id="_stJlkhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C966B200C9">
<body>Input pin from which the specified value for the qualifier is taken.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJllhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJllRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3D03F9C80242" name="LinkEndData">
<ownedRule xmi:id="_srW15hTaEdqZu-3Jy1-uYg" name="qualifiers" constrainedElement="_3ADC7B74022D3D03F9C80242">
<ownedComment xmi:id="_srW14hTaEdqZu-3Jy1-uYg" annotatedElement="_srW15hTaEdqZu-3Jy1-uYg">
<body>The qualifiers include all and only the qualifiers of the association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srW15xTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.qualifier->collect(qualifier) = self.end.qualifier</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srW17xTaEdqZu-3Jy1-uYg" name="end_object_input_pin" constrainedElement="_3ADC7B74022D3D03F9C80242">
<ownedComment xmi:id="_srW16xTaEdqZu-3Jy1-uYg" annotatedElement="_srW17xTaEdqZu-3Jy1-uYg">
<body>The end object input pin is not also a qualifier value input pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srgm0BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value->excludesAll(self.qualifier.value)</body>
</specification>
</ownedRule>
<ownedAttribute xmi:id="_3ADC7B74022D38C966380182" name="qualifier" type="_3ADC7B74022D38C965F70052" aggregation="composite" association="_3ADC7B74022D38C96637032F">
<ownedComment xmi:id="_ss_0pRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C966380182">
<body>List of qualifier values</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0qRTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0qBTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38C968BA0212" name="ReadLinkObjectEndAction">
<ownedComment xmi:id="_srgm1BTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C968BA0212">
<body>A read link object end action is an action that retrieves an end object from a link object.</body>
</ownedComment>
<ownedRule xmi:id="_srgm3RTaEdqZu-3Jy1-uYg" name="property" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srgm2RTaEdqZu-3Jy1-uYg" annotatedElement="_srgm3RTaEdqZu-3Jy1-uYg">
<body>The property must be an association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srgm3hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.end.association.notEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srgm5hTaEdqZu-3Jy1-uYg" name="association_of_association" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srgm4hTaEdqZu-3Jy1-uYg" annotatedElement="_srgm5hTaEdqZu-3Jy1-uYg">
<body>The association of the association end must be an association class.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srgm5xTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.end.Association.oclIsKindOf(AssociationClass)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srgm7xTaEdqZu-3Jy1-uYg" name="ends_of_association" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srgm6xTaEdqZu-3Jy1-uYg" annotatedElement="_srgm7xTaEdqZu-3Jy1-uYg">
<body>The ends of the association must not be static.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srgm8BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.end.association.memberEnd->forall(e | not e.isStatic)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srpwwxTaEdqZu-3Jy1-uYg" name="type_of_object" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srgm9BTaEdqZu-3Jy1-uYg" annotatedElement="_srpwwxTaEdqZu-3Jy1-uYg">
<body>The type of the object input pin is the association class that owns the association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srpwxBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.type = self.end.association</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srpwzBTaEdqZu-3Jy1-uYg" name="multiplicity_of_object" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srpwyBTaEdqZu-3Jy1-uYg" annotatedElement="_srpwzBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the object input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srpwzRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srpw1RTaEdqZu-3Jy1-uYg" name="type_of_result" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srpw0RTaEdqZu-3Jy1-uYg" annotatedElement="_srpw1RTaEdqZu-3Jy1-uYg">
<body>The type of the result output pin is the same as the type of the association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srpw1hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.end.type</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srpw3hTaEdqZu-3Jy1-uYg" name="multiplicity_of_result" constrainedElement="_3ADC7B74022D38C968BA0212">
<ownedComment xmi:id="_srpw2hTaEdqZu-3Jy1-uYg" annotatedElement="_srpw3hTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the result output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srpw3xTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF408C60140" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D38C968E2011F" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D38C968E002AC">
<ownedComment xmi:id="_stJlnBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C968E2011F">
<body>Gives the input pin from which the link object is obtained.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJloBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlnxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38C969090139" name="end" type="_3ADC7B74022D3CAB1D790101" association="_3ADC7B74022D38C9690800B5">
<ownedComment xmi:id="_stJlphTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C969090139">
<body>Link end to be read.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJlqhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlqRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D395CD5AF009B" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CD5AD0098">
<ownedComment xmi:id="_stJlsBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CD5AF009B">
<body>Pin where the result value is placed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJltBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlsxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38C9697C024D" name="ReadLinkObjectEndQualifierAction">
<ownedComment xmi:id="_srpw4xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C9697C024D">
<body>A read link object end qualifier action is an action that retrieves a qualifier end value from a link object.</body>
</ownedComment>
<ownedRule xmi:id="_srzhwxTaEdqZu-3Jy1-uYg" name="qualifier_attribute" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srpw6BTaEdqZu-3Jy1-uYg" annotatedElement="_srzhwxTaEdqZu-3Jy1-uYg">
<body>The qualifier attribute must be a qualifier attribute of an association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srzhxBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.qualifier.associationEnd->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srzhzBTaEdqZu-3Jy1-uYg" name="association_of_association" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srzhyBTaEdqZu-3Jy1-uYg" annotatedElement="_srzhzBTaEdqZu-3Jy1-uYg">
<body>The association of the association end of the qualifier attribute must be an association class.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srzhzRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srzh1RTaEdqZu-3Jy1-uYg" name="ends_of_association" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srzh0RTaEdqZu-3Jy1-uYg" annotatedElement="_srzh1RTaEdqZu-3Jy1-uYg">
<body>The ends of the association must not be static.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srzh1hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srzh3hTaEdqZu-3Jy1-uYg" name="type_of_object" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srzh2hTaEdqZu-3Jy1-uYg" annotatedElement="_srzh3hTaEdqZu-3Jy1-uYg">
<body>The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srzh3xTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.type = self.qualifier.associationEnd.association</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_srzh5xTaEdqZu-3Jy1-uYg" name="multiplicity_of_qualifier" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srzh4xTaEdqZu-3Jy1-uYg" annotatedElement="_srzh5xTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the qualifier attribute is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_srzh6BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.qualifier.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sr9SwxTaEdqZu-3Jy1-uYg" name="multiplicity_of_object" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_srzh7BTaEdqZu-3Jy1-uYg" annotatedElement="_sr9SwxTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the object input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sr9SxBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sr9SzBTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_sr9SyBTaEdqZu-3Jy1-uYg" annotatedElement="_sr9SzBTaEdqZu-3Jy1-uYg">
<body>The type of the result output pin is the same as the type of the qualifier attribute.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sr9SzRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.qualifier.type</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sr9S1RTaEdqZu-3Jy1-uYg" name="multiplicity_of_result" constrainedElement="_3ADC7B74022D38C9697C024D">
<ownedComment xmi:id="_sr9S0RTaEdqZu-3Jy1-uYg" annotatedElement="_sr9S1RTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the result output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sr9S1hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF408C9018A" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D38C969A203C4" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D38C9699F00D0">
<ownedComment xmi:id="_stSvghTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C969A203C4">
<body>Gives the input pin from which the link object is obtained.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvhhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvhRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D395CD5C7010D" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CD5C602EC">
<ownedComment xmi:id="_stSvjBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CD5C7010D">
<body>Pin where the result value is placed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvkBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvjxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38C96A0F006D" name="qualifier" type="_3ADC7B74022D3CC0DAE103AD" association="_3ADC7B74022D38C96A0A0283">
<ownedComment xmi:id="_stSvlhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C96A0F006D">
<body>The attribute representing the qualifier to be read.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvmhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvmRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38DA9AA00136" name="CreateLinkObjectAction">
<ownedComment xmi:id="_sr9S2hTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DA9AA00136">
<body>A create link object action creates a link object.</body>
</ownedComment>
<ownedRule xmi:id="_sr9S4xTaEdqZu-3Jy1-uYg" name="association_class" constrainedElement="_3ADC7B74022D38DA9AA00136">
<ownedComment xmi:id="_sr9S3xTaEdqZu-3Jy1-uYg" annotatedElement="_sr9S4xTaEdqZu-3Jy1-uYg">
<body>The association must be an association class.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sr9S5BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.association().oclIsKindOf(Class)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssGcsRTaEdqZu-3Jy1-uYg" name="type_of_result" constrainedElement="_3ADC7B74022D38DA9AA00136">
<ownedComment xmi:id="_sr9S6BTaEdqZu-3Jy1-uYg" annotatedElement="_ssGcsRTaEdqZu-3Jy1-uYg">
<body>The type of the result pin must be the same as the association of the action.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssGcshTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.association()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssGcuhTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D38DA9AA00136">
<ownedComment xmi:id="_ssGcthTaEdqZu-3Jy1-uYg" annotatedElement="_ssGcuhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssGcuxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D38DA9AB80307" general="_3ADC7B74022D3745C9F20140"/>
<ownedAttribute xmi:id="_3ADC7B74022D38D7E682031D" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D38D7E68103B2">
<ownedComment xmi:id="_stSvoBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38D7E682031D">
<body>Gives the output pin on which the result is put.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvpBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvoxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3DF1414A01C5" name="AcceptEventAction">
<ownedComment xmi:id="_ssGcwxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DF1414A01C5">
<body>A accept event action is an action that waits for the occurrence of an event meeting specified conditions.</body>
</ownedComment>
<ownedRule xmi:id="_ssGczBTaEdqZu-3Jy1-uYg" name="no_input_pins" constrainedElement="_3ADC7B74022D3DF1414A01C5">
<ownedComment xmi:id="_ssGcyBTaEdqZu-3Jy1-uYg" annotatedElement="_ssGczBTaEdqZu-3Jy1-uYg">
<body>AcceptEventActions may have no input pins.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssGczRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssGc1RTaEdqZu-3Jy1-uYg" name="no_output_pins" constrainedElement="_3ADC7B74022D3DF1414A01C5">
<ownedComment xmi:id="_ssGc0RTaEdqZu-3Jy1-uYg" annotatedElement="_ssGc1RTaEdqZu-3Jy1-uYg">
<body>There are no output pins if the trigger events are only ChangeEvents, or if they are only CallEvents when this action is an instance of AcceptEventAction and not an instance of a descendant of AcceptEventAction (such as AcceptCallAction).</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssGc1hTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssQNsxTaEdqZu-3Jy1-uYg" name="trigger_events" constrainedElement="_3ADC7B74022D3DF1414A01C5">
<ownedComment xmi:id="_ssGc2hTaEdqZu-3Jy1-uYg" annotatedElement="_ssQNsxTaEdqZu-3Jy1-uYg">
<body>If the trigger events are all TimeEvents, there is exactly one output pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssQNtBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssQNvBTaEdqZu-3Jy1-uYg" name="unmarshall_signal_events" constrainedElement="_3ADC7B74022D3DF1414A01C5">
<ownedComment xmi:id="_ssQNuBTaEdqZu-3Jy1-uYg" annotatedElement="_ssQNvBTaEdqZu-3Jy1-uYg">
<body>If isUnmarshall is true, there must be exactly one trigger for events of type SignalEvent. The number of result output pins must be the same as the number of attributes of the signal. The type and ordering of each result output pin must be the same as the corresponding attribute of the signal. The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding attribute.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssQNvRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A9F003B" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D40F19F1C02BD" name="isUnmarshall">
<ownedComment xmi:id="_ssQNwRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F19F1C02BD">
<body>Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HSj98BTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3DF142BB00AB" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D3DF142BA002E">
<ownedComment xmi:id="_stcgmhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DF142BB00AB">
<body>Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stcgnhTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stcgnRTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D4162A85001D0" name="trigger" type="_3ADC7B74022D3B9D229602A5" aggregation="composite" association="_3ADC7B74022D4162A84F00F1">
<ownedComment xmi:id="_st5McBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D4162A85001D0">
<body>The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_st5MdBTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_st5McxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3DFA834C0399" name="AcceptCallAction">
<ownedComment xmi:id="_ssQNxhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DFA834C0399">
<body>An accept call action is an accept event action representing the receipt of a synchronous call request. In addition to the normal operation parameters, the action produces an output that is needed later to supply the information to the reply action necessary to return control to the caller. This action is for synchronous calls. If it is used to handle an asynchronous call, execution of the subsequent reply action will complete immediately with no effects.</body>
</ownedComment>
<ownedRule xmi:id="_ssQNzxTaEdqZu-3Jy1-uYg" name="result_pins" constrainedElement="_3ADC7B74022D3DFA834C0399">
<ownedComment xmi:id="_ssQNyxTaEdqZu-3Jy1-uYg" annotatedElement="_ssQNzxTaEdqZu-3Jy1-uYg">
<body>The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssQN0BTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssZXoxTaEdqZu-3Jy1-uYg" name="trigger_call_event" constrainedElement="_3ADC7B74022D3DFA834C0399">
<ownedComment xmi:id="_ssQN1BTaEdqZu-3Jy1-uYg" annotatedElement="_ssZXoxTaEdqZu-3Jy1-uYg">
<body>The trigger event must be a CallEvent.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssZXpBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>trigger.event.oclIsKindOf(CallEvent)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssZXrBTaEdqZu-3Jy1-uYg" name="unmarshall" constrainedElement="_3ADC7B74022D3DFA834C0399">
<ownedComment xmi:id="_ssZXqBTaEdqZu-3Jy1-uYg" annotatedElement="_ssZXrBTaEdqZu-3Jy1-uYg">
<body>isUnmrashall must be true for an AcceptCallAction.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssZXrRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>isUnmarshall = true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3E11B33703E6" general="_3ADC7B74022D3DF1414A01C5"/>
<ownedAttribute xmi:id="_3ADC7B74022D3DFA85570271" name="returnInformation" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D3DFA855603D8">
<ownedComment xmi:id="_stmRghTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DFA85570271">
<body>Pin where a value is placed containing sufficient information to perform a subsequent reply and return control to the caller. The contents of this value are opaque. It can be passed and copied but it cannot be manipulated by the model.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stmRhhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stmRhRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3DFA89FE003E" name="ReplyAction">
<ownedComment xmi:id="_ssZXsRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DFA89FE003E">
<body>A reply action is an action that accepts a set of return values and a value 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.</body>
</ownedComment>
<ownedRule xmi:id="_ssZXuhTaEdqZu-3Jy1-uYg" name="pins_match_parameter" constrainedElement="_3ADC7B74022D3DFA89FE003E">
<ownedComment xmi:id="_ssZXthTaEdqZu-3Jy1-uYg" annotatedElement="_ssZXuhTaEdqZu-3Jy1-uYg">
<body>The reply value pins must match the return, out, and inout parameters of the operation on the event on the trigger in number, type, and order.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssZXuxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssZXwxTaEdqZu-3Jy1-uYg" name="event_on_reply_to_call_trigger" constrainedElement="_3ADC7B74022D3DFA89FE003E">
<ownedComment xmi:id="_ssZXvxTaEdqZu-3Jy1-uYg" annotatedElement="_ssZXwxTaEdqZu-3Jy1-uYg">
<body>The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssZXxBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>replyToCallEvent.oclIsKindOf(CallEvent)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DFA8A2600FA" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3DFA8A2D032C" name="replyToCall" type="_3ADC7B74022D3B9D229602A5" association="_3ADC7B74022D3DFA8A2C02AF">
<ownedComment xmi:id="_stmRihTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3DFA8A2D032C">
<body>The trigger specifying the operation whose call is being replied to.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stmRjhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stmRjRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D4132131A0369" name="returnInformation" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D413213190090">
<ownedComment xmi:id="_stvbghTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D4132131A0369">
<body>A pin containing the return information value produced by an earlier AcceptCallAction.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbhhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbhRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D413213720229" name="replyValue" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D4132136F01C0">
<ownedComment xmi:id="_stvbjBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D413213720229">
<body>A list of pins containing the reply values of the operation. These values are returned to the caller.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbkBTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbjxTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D40F19F8103B3" name="UnmarshallAction">
<ownedComment xmi:id="_ssZXyBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F19F8103B3">
<body>An unmarshall action is an action that breaks an object of a known type into outputs each of which is equal to a value from a structural feature of the object.</body>
</ownedComment>
<ownedRule xmi:id="_ssjIqBTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_ssjIpBTaEdqZu-3Jy1-uYg" annotatedElement="_ssjIqBTaEdqZu-3Jy1-uYg">
<body>The type of the object input pin must be the same as the unmarshall classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssjIqRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssjIsRTaEdqZu-3Jy1-uYg" name="multiplicity_of_object" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_ssjIrRTaEdqZu-3Jy1-uYg" annotatedElement="_ssjIsRTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the object input pin is 1..1</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssjIshTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssjIuhTaEdqZu-3Jy1-uYg" name="number_of_result" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_ssjIthTaEdqZu-3Jy1-uYg" annotatedElement="_ssjIuhTaEdqZu-3Jy1-uYg">
<body>The number of result output pins must be the same as the number of structural features of the unmarshall classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssjIuxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_ssjIwxTaEdqZu-3Jy1-uYg" name="type_and_ordering" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_ssjIvxTaEdqZu-3Jy1-uYg" annotatedElement="_ssjIwxTaEdqZu-3Jy1-uYg">
<body>The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_ssjIxBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sss5oxTaEdqZu-3Jy1-uYg" name="multiplicity_of_result" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_ssjIyBTaEdqZu-3Jy1-uYg" annotatedElement="_sss5oxTaEdqZu-3Jy1-uYg">
<body>The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.&#xD;
</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sss5pBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sss5rBTaEdqZu-3Jy1-uYg" name="structural_feature" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_sss5qBTaEdqZu-3Jy1-uYg" annotatedElement="_sss5rBTaEdqZu-3Jy1-uYg">
<body>The unmarshall classifier must have at least one structural feature.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sss5rRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_skhF0Dc7Edqq1tCaRkgBQQ" name="unmarshallType_is_classifier" constrainedElement="_3ADC7B74022D40F19F8103B3">
<ownedComment xmi:id="_3CncYDc7Edqq1tCaRkgBQQ" annotatedElement="_skhF0Dc7Edqq1tCaRkgBQQ">
<body>unmarshallType must be a Classifier with ordered attributes</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_skhF0Tc7Edqq1tCaRkgBQQ">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D40F19F9D013C" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D40F19FE601AF" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D40F19FE00355">
<ownedComment xmi:id="_stmRkhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F19FE601AF">
<body>The values of the structural features of the input object.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stmRlhTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stmRlRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D40F1A01F0107" name="unmarshallType" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D40F1A01D0104">
<ownedComment xmi:id="_stmRnBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F1A01F0107">
<body>The type of the object to be unmarshalled.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbchTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbcRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D413212B50086" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D413212B201B1">
<ownedComment xmi:id="_stvbeBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D413212B50086">
<body>The object to be unmarshalled.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbfBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbexTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3M4wwGdhEdqCCpdUvbQY5w" name="ReduceAction">
<ownedComment xmi:id="_JKP4wGdjEdqCCpdUvbQY5w" annotatedElement="_3M4wwGdhEdqCCpdUvbQY5w">
<body>A reduce action is an action that reduces a collection to a single value by combining the elements of the collection.</body>
</ownedComment>
<ownedRule xmi:id="_qhlQ4GdjEdqCCpdUvbQY5w" name="input_type_is_collection" constrainedElement="_3M4wwGdhEdqCCpdUvbQY5w">
<ownedComment xmi:id="_xUiycGdjEdqCCpdUvbQY5w" annotatedElement="_qhlQ4GdjEdqCCpdUvbQY5w">
<body>The type of the input must be a collection.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_qhlQ4WdjEdqCCpdUvbQY5w">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_y9vk4GdjEdqCCpdUvbQY5w" name="output_types_are_compatible" constrainedElement="_3M4wwGdhEdqCCpdUvbQY5w">
<ownedComment xmi:id="_7-t2IGdjEdqCCpdUvbQY5w" annotatedElement="_y9vk4GdjEdqCCpdUvbQY5w">
<body>The type of the output must be compatible with the type of the output of the reducer behavior.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_y9vk4WdjEdqCCpdUvbQY5w">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_DTENgGdkEdqCCpdUvbQY5w" name="reducer_inputs_output" constrainedElement="_3M4wwGdhEdqCCpdUvbQY5w">
<ownedComment xmi:id="_QVrIMGdkEdqCCpdUvbQY5w" annotatedElement="_DTENgGdkEdqCCpdUvbQY5w">
<body>The reducer behavior must have two input parameters and one output parameter, of types compatible with the types of elements of the input collection.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_DTENgWdkEdqCCpdUvbQY5w">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_7ku6wGdhEdqCCpdUvbQY5w" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_DCUGoWdiEdqCCpdUvbQY5w" name="reducer" type="_3ADC7B74022D3B9A6F4F0008" association="_DCUGoGdiEdqCCpdUvbQY5w">
<ownedComment xmi:id="_eR7dIGdjEdqCCpdUvbQY5w" annotatedElement="_DCUGoWdiEdqCCpdUvbQY5w">
<body>Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DCdQkWdiEdqCCpdUvbQY5w" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DCdQkGdiEdqCCpdUvbQY5w" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_U4on8WdiEdqCCpdUvbQY5w" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_U4on8GdiEdqCCpdUvbQY5w">
<ownedComment xmi:id="_hMyrwGdjEdqCCpdUvbQY5w" annotatedElement="_U4on8WdiEdqCCpdUvbQY5w">
<body>Gives the output pin on which the result is put.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_U4on9GdiEdqCCpdUvbQY5w" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_U4on82diEdqCCpdUvbQY5w" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_Y5-WcWdiEdqCCpdUvbQY5w" name="collection" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_Y5-WcGdiEdqCCpdUvbQY5w">
<ownedComment xmi:id="_PZvg4GdjEdqCCpdUvbQY5w" annotatedElement="_Y5-WcWdiEdqCCpdUvbQY5w">
<body>The collection to be reduced.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y6IHcmdiEdqCCpdUvbQY5w" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Y6IHcWdiEdqCCpdUvbQY5w" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_whZ6wGdiEdqCCpdUvbQY5w" name="isOrdered">
<ownedComment xmi:id="_PrVAIGdjEdqCCpdUvbQY5w" annotatedElement="_whZ6wGdiEdqCCpdUvbQY5w">
<body>Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_0rYn4GdiEdqCCpdUvbQY5w">
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
</defaultValue>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CFBA20393" name="A_result_readExtentAction" memberEnd="_3ADC7B74022D395CFBA30150 _3ADC7B74022D395CFBA301F0">
<ownedEnd xmi:id="_3ADC7B74022D395CFBA301F0" type="_3ADC7B74022D38C95C100257" association="_3ADC7B74022D395CFBA20393">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sss5uRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sss5uBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C95C8303C5" name="A_classifier_readExtentAction" memberEnd="_3ADC7B74022D38C95C8402C2 _3ADC7B74022D38C95C840330">
<ownedEnd xmi:id="_3ADC7B74022D38C95C840330" type="_3ADC7B74022D38C95C100257" association="_3ADC7B74022D38C95C8303C5">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sss5wxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sss5whTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38DBEB100312" name="A_oldClassifier_reclassifyObjectAction" memberEnd="_3ADC7B74022D38DBEB11022D _3ADC7B74022D38DBEB11029B">
<ownedEnd xmi:id="_3ADC7B74022D38DBEB11029B" type="_3ADC7B74022D38DBEACB029B" association="_3ADC7B74022D38DBEB100312">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DlhTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DlRTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38DBEB4102EB" name="A_newClassifier_reclassifyObjectAction" memberEnd="_3ADC7B74022D38DBEB4201CA _3ADC7B74022D38DBEB4201F2">
<ownedEnd xmi:id="_3ADC7B74022D38DBEB4201F2" type="_3ADC7B74022D38DBEACB029B" association="_3ADC7B74022D38DBEB4102EB">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DoBTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DnxTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D39739E2B0324" name="A_classifier_readIsClassifiedObjectAction" memberEnd="_3ADC7B74022D39739E2C01D1 _3ADC7B74022D39739E2C02A4">
<ownedEnd xmi:id="_3ADC7B74022D39739E2C02A4" type="_3ADC7B74022D39739DB102CF" association="_3ADC7B74022D39739E2B0324">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MPqhMU-4EduFOcgjjRrSMg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MPqhME-4EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D39739EA700DE" name="A_result_readIsClassifiedObjectAction" memberEnd="_3ADC7B74022D39739EA70341 _3ADC7B74022D39739EA80003">
<ownedEnd xmi:id="_3ADC7B74022D39739EA80003" type="_3ADC7B74022D39739DB102CF" association="_3ADC7B74022D39739EA700DE">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss2DshTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss2DsRTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D39739E5B0251" name="A_object_readIsClassifiedObjectAction" memberEnd="_3ADC7B74022D39739E5C00B8 _3ADC7B74022D39739E5C01A8">
<ownedEnd xmi:id="_3ADC7B74022D39739E5C01A8" type="_3ADC7B74022D39739DB102CF" association="_3ADC7B74022D39739E5B0251">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0mBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0lxTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3A7858D00028" name="A_object_startClassifierBehaviorAction" memberEnd="_3ADC7B74022D3A7858D00276 _3ADC7B74022D3A7858D0033F">
<ownedEnd xmi:id="_3ADC7B74022D3A7858D0033F" type="_3ADC7B74022D3A78587C0167" association="_3ADC7B74022D3A7858D00028">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0ohTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0oRTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C96637032F" name="A_qualifier_linkEndData" memberEnd="_3ADC7B74022D38C966380182 _3ADC7B74022D38C966380183">
<ownedEnd xmi:id="_3ADC7B74022D38C966380183" type="_3ADC7B74022D3D03F9C80242" association="_3ADC7B74022D38C96637032F">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0rBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0qxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C9668602D9" name="A_qualifier_qualifierValue" memberEnd="_3ADC7B74022D38C966870334 _3ADC7B74022D38C96687035C">
<ownedEnd xmi:id="_3ADC7B74022D38C96687035C" type="_3ADC7B74022D38C965F70052" association="_3ADC7B74022D38C9668602D9">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ss_0thTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ss_0tRTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C966AF03DC" name="A_value_qualifierValue" memberEnd="_3ADC7B74022D38C966B200C9 _3ADC7B74022D38C966B200E7">
<ownedEnd xmi:id="_3ADC7B74022D38C966B200E7" type="_3ADC7B74022D38C965F70052" association="_3ADC7B74022D38C966AF03DC">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJlmRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlmBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C968E002AC" name="A_object_readLinkObjectEndAction" memberEnd="_3ADC7B74022D38C968E2011F _3ADC7B74022D38C968E20147">
<ownedEnd xmi:id="_3ADC7B74022D38C968E20147" type="_3ADC7B74022D38C968BA0212" association="_3ADC7B74022D38C968E002AC">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJloxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlohTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C9690800B5" name="A_end_readLinkObjectEndAction" memberEnd="_3ADC7B74022D38C969090139 _3ADC7B74022D38C969090157">
<ownedEnd xmi:id="_3ADC7B74022D38C969090157" type="_3ADC7B74022D38C968BA0212" association="_3ADC7B74022D38C9690800B5">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJlrRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlrBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CD5AD0098" name="A_result_readLinkObjectEndAction" memberEnd="_3ADC7B74022D395CD5AF009B _3ADC7B74022D395CD5AF0145">
<ownedEnd xmi:id="_3ADC7B74022D395CD5AF0145" type="_3ADC7B74022D38C968BA0212" association="_3ADC7B74022D395CD5AD0098">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stJltxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stJlthTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C9699F00D0" name="A_object_readLinkObjectEndQualifierAction" memberEnd="_3ADC7B74022D38C969A203C4 _3ADC7B74022D38C969A203E2">
<ownedEnd xmi:id="_3ADC7B74022D38C969A203E2" type="_3ADC7B74022D38C9697C024D" association="_3ADC7B74022D38C9699F00D0">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSviRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSviBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CD5C602EC" name="A_result_readLinkObjectEndQualifierAction" memberEnd="_3ADC7B74022D395CD5C7010D _3ADC7B74022D395CD5C70199">
<ownedEnd xmi:id="_3ADC7B74022D395CD5C70199" type="_3ADC7B74022D38C9697C024D" association="_3ADC7B74022D395CD5C602EC">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvkxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvkhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C96A0A0283" name="A_qualifier_readLinkObjectEndQualifierAction" memberEnd="_3ADC7B74022D38C96A0F006D _3ADC7B74022D38C96A0F009F">
<ownedEnd xmi:id="_3ADC7B74022D38C96A0F009F" type="_3ADC7B74022D38C9697C024D" association="_3ADC7B74022D38C96A0A0283">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvnRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvnBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38D7E68103B2" name="A_result_createLinkObjectAction" memberEnd="_3ADC7B74022D38D7E682031D _3ADC7B74022D38D7E6820346">
<ownedEnd xmi:id="_3ADC7B74022D38D7E6820346" type="_3ADC7B74022D38DA9AA00136" association="_3ADC7B74022D38D7E68103B2">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stSvpxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stSvphTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3DF3A5BD03D8" name="A_reclassifyObjectAction_object" memberEnd="_3ADC7B74022D3DF3A5BE02AF _3ADC7B74022D3DF3A5BE02BF">
<ownedEnd xmi:id="_3ADC7B74022D3DF3A5BE02AF" type="_3ADC7B74022D38DBEACB029B" association="_3ADC7B74022D3DF3A5BD03D8">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGbXYU-4EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGbXYE-4EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3DF142BA002E" name="A_result_acceptEventAction" memberEnd="_3ADC7B74022D3DF142BB00AB _3ADC7B74022D3DF142BB0138">
<ownedEnd xmi:id="_3ADC7B74022D3DF142BB0138" type="_3ADC7B74022D3DF1414A01C5" association="_3ADC7B74022D3DF142BA002E">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mbH98U-3EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mbH98E-3EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3DFA855603D8" name="A_returnInformation_acceptCallAction" memberEnd="_3ADC7B74022D3DFA85570271 _3ADC7B74022D3DFA855702AF">
<ownedEnd xmi:id="_3ADC7B74022D3DFA855702AF" type="_3ADC7B74022D3DFA834C0399" association="_3ADC7B74022D3DFA855603D8">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oIzAsU-3EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oIzAsE-3EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3DFA8A2C02AF" name="A_replyToCall_replyAction" memberEnd="_3ADC7B74022D3DFA8A2D032C _3ADC7B74022D3DFA8A2D034B">
<ownedEnd xmi:id="_3ADC7B74022D3DFA8A2D034B" type="_3ADC7B74022D3DFA89FE003E" association="_3ADC7B74022D3DFA8A2C02AF">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wuWhQU-3EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wuWhQE-3EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D40F19FE00355" name="A_result_unmarshallAction" memberEnd="_3ADC7B74022D40F19FE601AF _3ADC7B74022D40F19FE601E1">
<ownedEnd xmi:id="_3ADC7B74022D40F19FE601E1" type="_3ADC7B74022D40F19F8103B3" association="_3ADC7B74022D40F19FE00355">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stmRmRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stmRmBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D40F1A01D0104" name="A_unmarshallType_unmarshallAction" memberEnd="_3ADC7B74022D40F1A01F0107 _3ADC7B74022D40F1A01F0157">
<ownedEnd xmi:id="_3ADC7B74022D40F1A01F0157" type="_3ADC7B74022D40F19F8103B3" association="_3ADC7B74022D40F1A01D0104">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbdRTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbdBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D413212B201B1" name="A_object_unmarshallAction" memberEnd="_3ADC7B74022D413212B50086 _3ADC7B74022D413212B500A4">
<ownedEnd xmi:id="_3ADC7B74022D413212B500A4" type="_3ADC7B74022D40F19F8103B3" association="_3ADC7B74022D413212B201B1">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbfxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbfhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D413213190090" name="A_returnInformation_replyAction" memberEnd="_3ADC7B74022D4132131A0369 _3ADC7B74022D4132131A0387">
<ownedEnd xmi:id="_3ADC7B74022D4132131A0387" type="_3ADC7B74022D3DFA89FE003E" association="_3ADC7B74022D413213190090">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbiRTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbiBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D4132136F01C0" name="A_replyValue_replyAction" memberEnd="_3ADC7B74022D413213720229 _3ADC7B74022D41321372023D">
<ownedEnd xmi:id="_3ADC7B74022D41321372023D" type="_3ADC7B74022D3DFA89FE003E" association="_3ADC7B74022D4132136F01C0">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_stvbkxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_stvbkhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D4162A84F00F1" name="A_trigger_acceptEventAction" memberEnd="_3ADC7B74022D4162A85001D0 _3ADC7B74022D4162A85001D2">
<ownedEnd xmi:id="_3ADC7B74022D4162A85001D2" type="_3ADC7B74022D3DF1414A01C5" association="_3ADC7B74022D4162A84F00F1">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_st5MdxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_st5MdhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_U4on8GdiEdqCCpdUvbQY5w" name="A_result_reduceAction" memberEnd="_U4on8WdiEdqCCpdUvbQY5w _U4on8mdiEdqCCpdUvbQY5w">
<ownedEnd xmi:id="_U4on8mdiEdqCCpdUvbQY5w" type="_3M4wwGdhEdqCCpdUvbQY5w" association="_U4on8GdiEdqCCpdUvbQY5w">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_b43qsU-4EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_b43qsE-4EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_Y5-WcGdiEdqCCpdUvbQY5w" name="A_collection_reduceAction" memberEnd="_Y5-WcWdiEdqCCpdUvbQY5w _Y6IHcGdiEdqCCpdUvbQY5w">
<ownedEnd xmi:id="_Y6IHcGdiEdqCCpdUvbQY5w" type="_3M4wwGdhEdqCCpdUvbQY5w" association="_Y5-WcGdiEdqCCpdUvbQY5w">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_amxJoU-4EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_amxJoE-4EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_DCUGoGdiEdqCCpdUvbQY5w" name="A_reducer_reduceAction" memberEnd="_DCUGoWdiEdqCCpdUvbQY5w _DCUGomdiEdqCCpdUvbQY5w">
<ownedEnd xmi:id="_DCUGomdiEdqCCpdUvbQY5w" type="_3M4wwGdhEdqCCpdUvbQY5w" association="_DCUGoGdiEdqCCpdUvbQY5w">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gfnzYU-4EduFOcgjjRrSMg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gfnzYE-4EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_3ADC7B74022D3DF1252E035B" name="IntermediateActions">
<packageImport xmi:id="_3ADC7B74022D4162B99E012D" importedPackage="_3ADC7B74022D410C264F010C"/>
<packageImport xmi:id="_Es5cAD9IEdqjIv4r4xIGZw" importedPackage="_3ADC7B74022D3C9FD9B900CF"/>
<packageMerge xmi:id="_HTmfwBTbEdqZu-3Jy1-uYg" mergedPackage="_3ADC7B74022D335C122001A4"/>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3745CA3B0096" name="CreateObjectAction">
<ownedComment xmi:id="_suV4ZBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3745CA3B0096">
<body>A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime.</body>
</ownedComment>
<ownedRule xmi:id="_suV4bRTaEdqZu-3Jy1-uYg" name="classifier_not_abstract" constrainedElement="_3ADC7B74022D3745CA3B0096">
<ownedComment xmi:id="_suV4aRTaEdqZu-3Jy1-uYg" annotatedElement="_suV4bRTaEdqZu-3Jy1-uYg">
<body>The classifier cannot be abstract.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_suV4bhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>not (self.classifier.isAbstract = #true)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_suV4dhTaEdqZu-3Jy1-uYg" name="classifier_not_association_class" constrainedElement="_3ADC7B74022D3745CA3B0096">
<ownedComment xmi:id="_suV4chTaEdqZu-3Jy1-uYg" annotatedElement="_suV4dhTaEdqZu-3Jy1-uYg">
<body>The classifier cannot be an association class</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_suV4dxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>not self.classifier.oclIsKindOf(AssociationClass)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_suV4fxTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D3745CA3B0096">
<ownedComment xmi:id="_suV4exTaEdqZu-3Jy1-uYg" annotatedElement="_suV4fxTaEdqZu-3Jy1-uYg">
<body>The type of the result pin must be the same as the classifier of the action.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sufCUBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.classifier</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sufCWBTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D3745CA3B0096">
<ownedComment xmi:id="_sufCVBTaEdqZu-3Jy1-uYg" annotatedElement="_sufCWBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sufCWRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A4A035A" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D381D094D0268" name="classifier" type="_3ADC7B74022D3CAAECE80199" association="_3ADC7B74022D381D094C0361">
<ownedComment xmi:id="_swueABTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D381D094D0268">
<body>Classifier to be instantiated.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueBBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueAxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38D6B21303BC" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D38D6B2130145">
<ownedComment xmi:id="_swueChTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38D6B21303BC">
<body>Gives the output pin on which the result is put.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueDhTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueDRTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3745CA280212" name="DestroyObjectAction">
<ownedComment xmi:id="_sufCXRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3745CA280212">
<body>A destroy object action is an action that destroys objects.</body>
</ownedComment>
<ownedRule xmi:id="_sufCZhTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D3745CA280212">
<ownedComment xmi:id="_sufCYhTaEdqZu-3Jy1-uYg" annotatedElement="_sufCZhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sufCZxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.target.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sufCbxTaEdqZu-3Jy1-uYg" name="no_type" constrainedElement="_3ADC7B74022D3745CA280212">
<ownedComment xmi:id="_sufCaxTaEdqZu-3Jy1-uYg" annotatedElement="_sufCbxTaEdqZu-3Jy1-uYg">
<body>The input pin has no type.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sufCcBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.target.type->size() = 0</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A4D0336" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D408A5B510111" name="isDestroyLinks">
<ownedComment xmi:id="_sufCdBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D408A5B510111">
<body>Specifies whether links in which the object participates are destroyed along with the object.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HT6BwBTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D408A5B5D0399" name="isDestroyOwnedObjects">
<ownedComment xmi:id="_sufCeRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D408A5B5D0399">
<body>Specifies whether objects owned by the object are destroyed along with the object.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HT6BwRTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D37497F3F02E4" name="target" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D37497F3E0320">
<ownedComment xmi:id="_swueFBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D37497F3F02E4">
<body>The input pin providing the object to be destroyed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueGBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueFxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3AA55DF5017C" name="TestIdentityAction">
<ownedComment xmi:id="_suozVBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3AA55DF5017C">
<body>A test identity action is an action that tests if two values are identical objects.</body>
</ownedComment>
<ownedRule xmi:id="_suozXRTaEdqZu-3Jy1-uYg" name="no_type" constrainedElement="_3ADC7B74022D3AA55DF5017C">
<ownedComment xmi:id="_suozWRTaEdqZu-3Jy1-uYg" annotatedElement="_suozXRTaEdqZu-3Jy1-uYg">
<body>The input pins have no type.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_suozXhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.first.type->size() = 0&#xA;and self.second.type->size() = 0&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_suozZhTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D3AA55DF5017C">
<ownedComment xmi:id="_suozYhTaEdqZu-3Jy1-uYg" annotatedElement="_suozZhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pins is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_suozZxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.first.multiplicity.is(1,1)&#xA;and self.second.multiplicity.is(1,1)&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_suozbxTaEdqZu-3Jy1-uYg" name="result_is_boolean" constrainedElement="_3ADC7B74022D3AA55DF5017C">
<ownedComment xmi:id="_suozaxTaEdqZu-3Jy1-uYg" annotatedElement="_suozbxTaEdqZu-3Jy1-uYg">
<body>The type of the result is Boolean.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_suozcBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type.oclIsTypeOf(Boolean)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A5201B7" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3CB5C7280139" name="first" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3CB5C7270200">
<ownedComment xmi:id="_swueHhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3CB5C7280139">
<body>Gives the pin on which an object is placed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3n8xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3n8hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3CB5C7300343" name="second" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3CB5C72F02DE">
<ownedComment xmi:id="_sw3n-RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3CB5C7300343">
<body>Gives the pin on which an object is placed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3n_RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3n_BTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3CB5C6940046" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D3CB5C6930149">
<ownedComment xmi:id="_sw3oAxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3CB5C6940046">
<body>Tells whether the two input objects are identical.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3oBxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3oBhTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38C96A5A00A7" name="ReadSelfAction">
<ownedComment xmi:id="_sux9QRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C96A5A00A7">
<body>A read self action is an action that retrieves the host object of an action.</body>
</ownedComment>
<ownedRule xmi:id="_sux9ShTaEdqZu-3Jy1-uYg" name="contained" constrainedElement="_3ADC7B74022D38C96A5A00A7">
<ownedComment xmi:id="_sux9RhTaEdqZu-3Jy1-uYg" annotatedElement="_sux9ShTaEdqZu-3Jy1-uYg">
<body>The action must be contained in an behavior that has a host classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sux9SxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.context->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sux9UxTaEdqZu-3Jy1-uYg" name="not_static" constrainedElement="_3ADC7B74022D38C96A5A00A7">
<ownedComment xmi:id="_sux9TxTaEdqZu-3Jy1-uYg" annotatedElement="_sux9UxTaEdqZu-3Jy1-uYg">
<body>If the action is contained in an behavior that is acting as the body of a method, then the operation of the method must not be static.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sux9VBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sux9XBTaEdqZu-3Jy1-uYg" name="type" constrainedElement="_3ADC7B74022D38C96A5A00A7">
<ownedComment xmi:id="_sux9WBTaEdqZu-3Jy1-uYg" annotatedElement="_sux9XBTaEdqZu-3Jy1-uYg">
<body>The type of the result output pin is the host classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sux9XRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.context</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sux9ZRTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D38C96A5A00A7">
<ownedComment xmi:id="_sux9YRTaEdqZu-3Jy1-uYg" annotatedElement="_sux9ZRTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the result output pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sux9ZhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A55039C" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D395CFBA10125" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CFBA0032C">
<ownedComment xmi:id="_sw3oDRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CFBA10125">
<body>Gives the output pin on which the hosting object is placed.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3oERTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3oEBTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38DC060A01A0" name="StructuralFeatureAction" isAbstract="true">
<ownedComment xmi:id="_su7uQRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DC060A01A0">
<body>StructuralFeatureAction is an abstract class for all structural feature actions.</body>
</ownedComment>
<ownedRule xmi:id="_su7uShTaEdqZu-3Jy1-uYg" name="not_static" constrainedElement="_3ADC7B74022D38DC060A01A0">
<ownedComment xmi:id="_su7uRhTaEdqZu-3Jy1-uYg" annotatedElement="_su7uShTaEdqZu-3Jy1-uYg">
<body>The structural feature must not be static.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_su7uSxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.structuralFeature.isStatic = #false</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_su7uUxTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D38DC060A01A0">
<ownedComment xmi:id="_su7uTxTaEdqZu-3Jy1-uYg" annotatedElement="_su7uUxTaEdqZu-3Jy1-uYg">
<body>The type of the object input pin is the same as the classifier of the object passed on this pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_su7uVBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_su7uXBTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D38DC060A01A0">
<ownedComment xmi:id="_su7uWBTaEdqZu-3Jy1-uYg" annotatedElement="_su7uXBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin must be 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_su7uXRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_su7uZRTaEdqZu-3Jy1-uYg" name="visibility" constrainedElement="_3ADC7B74022D38DC060A01A0">
<ownedComment xmi:id="_su7uYRTaEdqZu-3Jy1-uYg" annotatedElement="_su7uZRTaEdqZu-3Jy1-uYg">
<body>Visibility of structural feature must allow access to the object performing the action.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_su7uZhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let host : Classifier = self.context in&#xA;self.structuralFeature.visibility = #public&#xA;or host = self.structuralFeature.featuringClassifier.type&#xA;or (self.structuralFeature.visibility = #protected and host.allSupertypes&#xA;->includes(self.structuralFeature.featuringClassifier.type)))&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_svFfQxTaEdqZu-3Jy1-uYg" name="one_featuring_classifier" constrainedElement="_3ADC7B74022D38DC060A01A0">
<ownedComment xmi:id="_su7uahTaEdqZu-3Jy1-uYg" annotatedElement="_svFfQxTaEdqZu-3Jy1-uYg">
<body>A structural feature has exactly one featuringClassifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svFfRBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.structuralFeature.featuringClassifier->size() = 1</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A1500E7" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D38DC08B8027B" name="structuralFeature" type="_3ADC7B74022D3CAB08ED000D" association="_3ADC7B74022D38DC08B80279">
<ownedComment xmi:id="_sxBY8xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DC08B8027B">
<body>Structural feature to be read.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxBY9xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxBY9hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D38DC073A03E2" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D38DC073A0161">
<ownedComment xmi:id="_sxBY-hTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DC073A03E2">
<body>Gives the input pin from which the object whose structural feature is to be read or written is obtained.&#xD;
</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxBY_hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxBY_RTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D395CE0A502DA" name="ReadStructuralFeatureAction">
<ownedComment xmi:id="_svFfSBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CE0A502DA">
<body>A read structural feature action is a structural feature action that retrieves the values of a structural feature.</body>
</ownedComment>
<ownedRule xmi:id="_svFfURTaEdqZu-3Jy1-uYg" name="type_and_ordering" constrainedElement="_3ADC7B74022D395CE0A502DA">
<ownedComment xmi:id="_svFfTRTaEdqZu-3Jy1-uYg" annotatedElement="_svFfURTaEdqZu-3Jy1-uYg">
<body>The type and ordering of the result output pin are the same as the type and ordering of the structural feature.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svFfUhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.result.type = self.structuralFeature.type&#xA;and self.result.ordering = self.structuralFeature.ordering&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_svFfWhTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D395CE0A502DA">
<ownedComment xmi:id="_svFfVhTaEdqZu-3Jy1-uYg" annotatedElement="_svFfWhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svFfWxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D395CE0B10255" general="_3ADC7B74022D38DC060A01A0"/>
<ownedAttribute xmi:id="_3ADC7B74022D395CE0B3033E" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CE0B30154">
<ownedComment xmi:id="_sxBZBBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CE0B3033E">
<body>Gives the output pin on which the result is put.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi4xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi4hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D380F43690262" name="WriteStructuralFeatureAction" isAbstract="true">
<ownedComment xmi:id="_svFfXxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D380F43690262">
<body>WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values.</body>
</ownedComment>
<ownedRule xmi:id="_svOpMxTaEdqZu-3Jy1-uYg" name="input_pin" constrainedElement="_3ADC7B74022D380F43690262">
<ownedComment xmi:id="_svFfZBTaEdqZu-3Jy1-uYg" annotatedElement="_svOpMxTaEdqZu-3Jy1-uYg">
<body>The type input pin is the same as the classifier of the structural feature.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svOpNBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.type = self.structuralFeature.featuringClassifier</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_svOpPBTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D380F43690262">
<ownedComment xmi:id="_svOpOBTaEdqZu-3Jy1-uYg" annotatedElement="_svOpPBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svOpPRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D38DC062A00DE" general="_3ADC7B74022D38DC060A01A0"/>
<ownedAttribute xmi:id="_3ADC7B74022D39073965015A" name="value" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3907396402D5">
<ownedComment xmi:id="_sxKi6RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39073965015A">
<body>Value to be added or removed from the structural feature.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi7RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi7BTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3A78723F03E1" name="ClearStructuralFeatureAction">
<ownedComment xmi:id="_svOpQRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A78723F03E1">
<body>A clear structural feature action is a structural feature action that removes all values of a structural feature.</body>
</ownedComment>
<generalization xmi:id="_3ADC7B74022D3A7872B7039E" general="_3ADC7B74022D38DC060A01A0"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3A7870670003" name="RemoveStructuralFeatureValueAction">
<ownedComment xmi:id="_svYaMBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A7870670003">
<body>A remove structural feature value action is a write structural feature action that removes values from structural features.</body>
</ownedComment>
<ownedRule xmi:id="_svYaORTaEdqZu-3Jy1-uYg" name="non_unique_removal" constrainedElement="_3ADC7B74022D3A7870670003">
<ownedComment xmi:id="_svYaNRTaEdqZu-3Jy1-uYg" annotatedElement="_svYaORTaEdqZu-3Jy1-uYg">
<body>Actions removing a value from ordered nonunique structural features must have a single removeAt input pin if isRemoveDuplicates is false. It must be of type Unlimited Natural with multiplicity 1..1. Otherwise, the action has no removeAt input pin.&#xD;
</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svYaOhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3A7872050103" general="_3ADC7B74022D380F43690262"/>
<ownedAttribute xmi:id="_3ADC7B74022D40F9B0860159" name="isRemoveDuplicates">
<ownedComment xmi:id="_svYaPhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B0860159">
<body>Specifies whether to remove duplicates of the value in nonunique structural features.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HUM8sBTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D40F9B01C03C3" name="removeAt" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D40F9B01A029E">
<ownedComment xmi:id="_sxw_4RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B01C03C3">
<body>Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_5RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_5BTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3A787176007B" name="AddStructuralFeatureValueAction">
<ownedComment xmi:id="_svYaQxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A787176007B">
<body>An add structural feature value action is a write structural feature action for adding values to a structural feature.</body>
</ownedComment>
<ownedRule xmi:id="_svYaTBTaEdqZu-3Jy1-uYg" name="unlimited_natural_and_multiplicity" constrainedElement="_3ADC7B74022D3A787176007B">
<ownedComment xmi:id="_svYaSBTaEdqZu-3Jy1-uYg" annotatedElement="_svYaTBTaEdqZu-3Jy1-uYg">
<body>Actions adding a value to ordered structural features must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svYaTRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3A7871820371" general="_3ADC7B74022D380F43690262"/>
<ownedAttribute xmi:id="_3ADC7B74022D3A78A64D0112" name="isReplaceAll">
<ownedComment xmi:id="_svYaURTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A78A64D0112">
<body>Specifies whether existing values of the structural feature of the object should be removed before adding the new value.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HUWGoBTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3960D15E0004" name="insertAt" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3960D15B0367">
<ownedComment xmi:id="_sxKi8xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3960D15E0004">
<body>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.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi9xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi9hTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D38DC038F0193" name="LinkAction" isAbstract="true">
<ownedComment xmi:id="_sviLNBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DC038F0193">
<body>LinkAction is an abstract class for all link actions that identify their links by the objects at the ends of the links and by the qualifiers at ends of the links.</body>
</ownedComment>
<ownedRule xmi:id="_sviLPRTaEdqZu-3Jy1-uYg" name="same_association" constrainedElement="_3ADC7B74022D38DC038F0193">
<ownedComment xmi:id="_sviLORTaEdqZu-3Jy1-uYg" annotatedElement="_sviLPRTaEdqZu-3Jy1-uYg">
<body>The association ends of the link end data must all be from the same association and include all and only the association ends of that association.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sviLPhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.endData->collect(end) = self.association()->collect(connection))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sviLRhTaEdqZu-3Jy1-uYg" name="not_static" constrainedElement="_3ADC7B74022D38DC038F0193">
<ownedComment xmi:id="_sviLQhTaEdqZu-3Jy1-uYg" annotatedElement="_sviLRhTaEdqZu-3Jy1-uYg">
<body>The association ends of the link end data must not be static.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sviLRxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sviLTxTaEdqZu-3Jy1-uYg" name="same_pins" constrainedElement="_3ADC7B74022D38DC038F0193">
<ownedComment xmi:id="_sviLSxTaEdqZu-3Jy1-uYg" annotatedElement="_sviLTxTaEdqZu-3Jy1-uYg">
<body>The input pins of the action are the same as the pins of the link end data and insertion pins.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sviLUBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.input->asSet() =&#xA;let ledpins : Set = self.endData->collect(value) in&#xA;if self.oclIsKindOf(LinkEndCreationData)&#xA;then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt)&#xA;else ledpins&#xA;</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40A35011F" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D38DC04A0013B" name="endData" type="_3ADC7B74022D37497C230140" aggregation="composite" association="_3ADC7B74022D38DC049F0298">
<ownedComment xmi:id="_sxKi_RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38DC04A0013B">
<body>Data identifying one end of a link by the objects on its ends and qualifiers.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKjARTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKjABTaEdqZu-3Jy1-uYg" value="2"/>
</ownedAttribute>
<ownedAttribute xmi:id="_TWk18TanEdqq1tCaRkgBQQ" name="inputValue" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_TWk18DanEdqq1tCaRkgBQQ">
<ownedComment xmi:id="_JGDp8EDPEdqY8ZY2jW2jkQ" annotatedElement="_TWk18TanEdqq1tCaRkgBQQ">
<body>Pins taking end objects and qualifier values as input.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TWk19DanEdqq1tCaRkgBQQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TWk18zanEdqq1tCaRkgBQQ" value="1"/>
</ownedAttribute>
<ownedOperation xmi:id="_3ADC7B74022D4300909101D4" name="association" isQuery="true" bodyCondition="_svrVJRTaEdqZu-3Jy1-uYg">
<ownedComment xmi:id="_svrVIRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D4300909101D4">
<body>The association operates on LinkAction. It returns the association of the action.</body>
</ownedComment>
<ownedRule xmi:id="_svrVJRTaEdqZu-3Jy1-uYg" name="spec" constrainedElement="_3ADC7B74022D4300909101D4">
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svrVJhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>result = self.endData->asSequence().first().end.association</body>
</specification>
</ownedRule>
<ownedParameter xmi:id="_svrVJBTaEdqZu-3Jy1-uYg" type="_3ADC7B74022D3CAB1DD70016" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D37497C230140" name="LinkEndData">
<ownedComment xmi:id="_svrVKhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D37497C230140">
<body>A link end data is not an action. It is an element that identifies links. It identifies one end of a link to be read or written by the children of a link action. A link cannot be passed as a runtime value to or from an action. Instead, a link is identified by its end objects and qualifier values, if any. This requires more than one piece of data, namely, the statically-specified end in the user model, the object on the end, and the qualifier values for that end, if any. These pieces are brought together around a link end data. Each association end is identified separately with an instance of the LinkEndData class.</body>
</ownedComment>
<ownedRule xmi:id="_svrVMxTaEdqZu-3Jy1-uYg" name="property_is_association_end" constrainedElement="_3ADC7B74022D37497C230140">
<ownedComment xmi:id="_svrVLxTaEdqZu-3Jy1-uYg" annotatedElement="_svrVMxTaEdqZu-3Jy1-uYg">
<body>The property must be an association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svrVNBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.end.association->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_svrVOxTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D37497C230140">
<ownedComment xmi:id="_svrVOBTaEdqZu-3Jy1-uYg" annotatedElement="_svrVOxTaEdqZu-3Jy1-uYg">
<body>The type of the end object input pin is the same as the type of the association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svrVPBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.type = self.end.type</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_svrVRBTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D37497C230140">
<ownedComment xmi:id="_svrVQBTaEdqZu-3Jy1-uYg" annotatedElement="_svrVRBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the end object input pin must be 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_svrVRRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.value.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3E033D670182" general="_3ADC7B74022D3CAAEC0D0176"/>
<ownedAttribute xmi:id="_3ADC7B74022D38C965AE012A" name="value" type="_3ADC7B74022D384B237E021A" association="_3ADC7B74022D38C965AD0164">
<ownedComment xmi:id="_sxKjBxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D38C965AE012A">
<body>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.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT4xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT4hTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3D0CD47D03BA" name="end" type="_3ADC7B74022D3CAB1D790101" association="_3ADC7B74022D3D0CD47D0139">
<ownedComment xmi:id="_sxUT6RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3D0CD47D03BA">
<body>Association end for which this link-end data specifies values.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT7RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT7BTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D395CD503027E" name="ReadLinkAction">
<ownedComment xmi:id="_sv1GIRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CD503027E">
<body>A read link action is a link action that navigates across associations to retrieve objects on one end.</body>
</ownedComment>
<ownedRule xmi:id="_sv1GKhTaEdqZu-3Jy1-uYg" name="one_open_end" constrainedElement="_3ADC7B74022D395CD503027E">
<ownedComment xmi:id="_sv1GJhTaEdqZu-3Jy1-uYg" annotatedElement="_sv1GKhTaEdqZu-3Jy1-uYg">
<body>Exactly one link-end data specification (the 'open' end) must not have an end object input pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv1GKxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sv1GMxTaEdqZu-3Jy1-uYg" name="type_and_ordering" constrainedElement="_3ADC7B74022D395CD503027E">
<ownedComment xmi:id="_sv1GLxTaEdqZu-3Jy1-uYg" annotatedElement="_sv1GMxTaEdqZu-3Jy1-uYg">
<body>The type and ordering of the result output pin are same as the type and ordering of the open association end.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv1GNBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;self.result.type = openend.type&#xA;and self.result.ordering = openend.ordering&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sv-3JBTaEdqZu-3Jy1-uYg" name="compatible_multiplicity" constrainedElement="_3ADC7B74022D395CD503027E">
<ownedComment xmi:id="_sv-3IBTaEdqZu-3Jy1-uYg" annotatedElement="_sv-3JBTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv-3JRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sv-3LRTaEdqZu-3Jy1-uYg" name="navigable_open_end" constrainedElement="_3ADC7B74022D395CD503027E">
<ownedComment xmi:id="_sv-3KRTaEdqZu-3Jy1-uYg" annotatedElement="_sv-3LRTaEdqZu-3Jy1-uYg">
<body>The open end must be navigable.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv-3LhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.isNavigable()&#xA;</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_sv-3NhTaEdqZu-3Jy1-uYg" name="visibility" constrainedElement="_3ADC7B74022D395CD503027E">
<ownedComment xmi:id="_sv-3MhTaEdqZu-3Jy1-uYg" annotatedElement="_sv-3NhTaEdqZu-3Jy1-uYg">
<body>Visibility of the open end must allow access to the object performing the action.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv-3NxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let host : Classifier = self.context in&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D395CD51203AC" general="_3ADC7B74022D38DC038F0193"/>
<ownedAttribute xmi:id="_3ADC7B74022D395CD52102DB" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D395CD521012D">
<ownedComment xmi:id="_sxUT8xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D395CD52102DB">
<body>The pin on which are put the objects participating in the association at the end not specified by the inputs.&#xD;
</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT9xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT9hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D393AD8B602EE" name="LinkEndCreationData">
<ownedComment xmi:id="_sv-3OxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D393AD8B602EE">
<body>A link end creation data is not an action. It is an element that identifies links. It identifies one end of a link to be created by a create link action.</body>
</ownedComment>
<ownedRule xmi:id="_sv-3RBTaEdqZu-3Jy1-uYg" name="create_link_action" constrainedElement="_3ADC7B74022D393AD8B602EE">
<ownedComment xmi:id="_sv-3QBTaEdqZu-3Jy1-uYg" annotatedElement="_sv-3RBTaEdqZu-3Jy1-uYg">
<body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_sv-3RRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_swIBFRTaEdqZu-3Jy1-uYg" name="single_input_pin" constrainedElement="_3ADC7B74022D393AD8B602EE">
<ownedComment xmi:id="_swIBERTaEdqZu-3Jy1-uYg" annotatedElement="_swIBFRTaEdqZu-3Jy1-uYg">
<body>Link end creation data for ordered association ends must have a single input pin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, otherwise the action has no input pin for the insertion point.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swIBFhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>let insertAtPins : Collection = self.insertAt in&#xA;if self.end.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAts->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D38DA8D750084" general="_3ADC7B74022D37497C230140"/>
<ownedAttribute xmi:id="_3ADC7B74022D3A785E8003E3" name="isReplaceAll">
<ownedComment xmi:id="_swIBGhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A785E8003E3">
<body>Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HUf3oBTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3960C17401FA" name="insertAt" type="_3ADC7B74022D384B237E021A" association="_3ADC7B74022D3960C173020D">
<ownedComment xmi:id="_sxUT_RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3960C17401FA">
<body>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.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUUARTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUUABTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3745C9F20140" name="CreateLinkAction">
<ownedComment xmi:id="_swIBHxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3745C9F20140">
<body>A create link action is a write link action for creating links.</body>
</ownedComment>
<ownedRule xmi:id="_swIBKBTaEdqZu-3Jy1-uYg" name="association_not_abstract" constrainedElement="_3ADC7B74022D3745C9F20140">
<ownedComment xmi:id="_swIBJBTaEdqZu-3Jy1-uYg" annotatedElement="_swIBKBTaEdqZu-3Jy1-uYg">
<body>The association cannot be an abstract classifier.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swIBKRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.association().isAbstract = #false</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3907702B036F" general="_3ADC7B74022D39076FFD0233"/>
<ownedAttribute xmi:id="_3ADC7B74022D393AD8C30256" name="endData" type="_3ADC7B74022D393AD8B602EE" aggregation="composite" redefinedProperty="_3ADC7B74022D38DC04A0013B" association="_3ADC7B74022D393AD8C202F5">
<ownedComment xmi:id="_sxUUBxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D393AD8C30256">
<body>Specifies ends of association and inputs.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxeE4xTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxeE4hTaEdqZu-3Jy1-uYg" value="2"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3745CA190280" name="DestroyLinkAction">
<ownedComment xmi:id="_swIBLRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3745CA190280">
<body>A destroy link action is a write link action that destroys links and link objects.</body>
</ownedComment>
<generalization xmi:id="_3ADC7B74022D3907702E02A1" general="_3ADC7B74022D39076FFD0233"/>
<ownedAttribute xmi:id="_3ADC7B74022D40F9B1D1008D" name="endData" type="_3ADC7B74022D40F9B109007B" aggregation="composite" redefinedProperty="_3ADC7B74022D38DC04A0013B" association="_3ADC7B74022D40F9B1CF0008">
<ownedComment xmi:id="_sxw_9RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B1D1008D">
<body>Specifies ends of association and inputs.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sx6w0xTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sx6w0hTaEdqZu-3Jy1-uYg" value="2"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D39076FFD0233" name="WriteLinkAction" isAbstract="true">
<ownedComment xmi:id="_swRyExTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D39076FFD0233">
<body>WriteLinkAction is an abstract class for link actions that create and destroy links.</body>
</ownedComment>
<ownedRule xmi:id="_nWosAEbvEdq0rbStTpEubg" name="allow_access" constrainedElement="_3ADC7B74022D39076FFD0233">
<ownedComment xmi:id="_qqPKwEbvEdq0rbStTpEubg" annotatedElement="_nWosAEbvEdq0rbStTpEubg">
<body>The visibility of at least one end must allow access to the class using the action.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_nWosAUbvEdq0rbStTpEubg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D395CE59D00D0" general="_3ADC7B74022D38DC038F0193"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3A787BA00221" name="ClearAssociationAction">
<ownedComment xmi:id="_swRyGBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A787BA00221">
<body>A clear association action is an action that destroys all links of an association in which a particular object participates.</body>
</ownedComment>
<ownedRule xmi:id="_swRyIRTaEdqZu-3Jy1-uYg" name="same_type" constrainedElement="_3ADC7B74022D3A787BA00221">
<ownedComment xmi:id="_swRyHRTaEdqZu-3Jy1-uYg" annotatedElement="_swRyIRTaEdqZu-3Jy1-uYg">
<body>The type of the input pin must be the same as the type of at least one of the association ends of the association.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swRyIhTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.association->exists(end.type = self.object.type)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_swRyKhTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D3A787BA00221">
<ownedComment xmi:id="_swRyJhTaEdqZu-3Jy1-uYg" annotatedElement="_swRyKhTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the input pin is 1..1.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swRyKxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3DF40B1600AB" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3A78829900DD" name="object" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3A78829802EF">
<ownedComment xmi:id="_sxeE6RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A78829900DD">
<body>Gives the input pin from which is obtained the object whose participation in the association is to be cleared.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxeE7RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxeE7BTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3A787C7500FB" name="association" type="_3ADC7B74022D3CAB1DD70016" association="_3ADC7B74022D3A787C74030C">
<ownedComment xmi:id="_sxeE8xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3A787C7500FB">
<body>Association to be cleared.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxeE9xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxeE9hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3B68A64C002F" name="BroadcastSignalAction">
<ownedComment xmi:id="_swRyLxTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3B68A64C002F">
<body>A broadcast signal action 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.</body>
</ownedComment>
<ownedRule xmi:id="_swa8AxTaEdqZu-3Jy1-uYg" name="number_and_order" constrainedElement="_3ADC7B74022D3B68A64C002F">
<ownedComment xmi:id="_swRyNBTaEdqZu-3Jy1-uYg" annotatedElement="_swa8AxTaEdqZu-3Jy1-uYg">
<body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swa8BBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_swa8DBTaEdqZu-3Jy1-uYg" name="type_ordering_multiplicity" constrainedElement="_3ADC7B74022D3B68A64C002F">
<ownedComment xmi:id="_swa8CBTaEdqZu-3Jy1-uYg" annotatedElement="_swa8DBTaEdqZu-3Jy1-uYg">
<body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swa8DRTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D3B68A66901E0" general="_3ADC7B74022D3DF129D8035B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3B68A6DF00F9" name="signal" type="_3ADC7B74022D3389030B00E6" association="_3ADC7B74022D3B68A6DE01E8">
<ownedComment xmi:id="_sxw_1xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3B68A6DF00F9">
<body>The specification of signal object transmitted to the target objects.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_2xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_2hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D3D63D34B001F" name="SendObjectAction">
<ownedComment xmi:id="_swa8ERTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3D63D34B001F">
<body>A send object action 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.</body>
</ownedComment>
<generalization xmi:id="_3ADC7B74022D3D63D6D602CE" general="_3ADC7B74022D3DF129D8035B"/>
<ownedAttribute xmi:id="_3ADC7B74022D3D63D6EC034B" name="target" type="_3ADC7B74022D384B237E021A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DF5031E" association="_3ADC7B74022D3D63D6EA030D">
<ownedComment xmi:id="_sxnO1BTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3D63D6EC034B">
<body>The target object to which the object is sent.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxnO2BTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxnO1xTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D3D63D78001E4" name="request" type="_3ADC7B74022D384B237E021A" aggregation="composite" redefinedProperty="_3ADC7B74022D3CA72E450074" association="_3ADC7B74022D3D63D77F0213">
<ownedComment xmi:id="_sxnO3BTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D3D63D78001E4">
<body>The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_0xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_0hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D40F9B109007B" name="LinkEndDestructionData">
<ownedComment xmi:id="_swa8FhTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B109007B">
<body>A link end destruction data is not an action. It is an element that identifies links. It identifies one end of a link to be destroyed by destroy link action.</body>
</ownedComment>
<ownedRule xmi:id="_swa8HxTaEdqZu-3Jy1-uYg" name="destroy_link_action" constrainedElement="_3ADC7B74022D40F9B109007B">
<ownedComment xmi:id="_swa8GxTaEdqZu-3Jy1-uYg" annotatedElement="_swa8HxTaEdqZu-3Jy1-uYg">
<body>LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swa8IBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_swktAxTaEdqZu-3Jy1-uYg" name="unlimited_natural_and_multiplicity" constrainedElement="_3ADC7B74022D40F9B109007B">
<ownedComment xmi:id="_swa8JBTaEdqZu-3Jy1-uYg" annotatedElement="_swktAxTaEdqZu-3Jy1-uYg">
<body>LinkEndDestructionData for ordered nonunique association ends must have a single destroyAt input pin if isDestroyDuplicates is false. It must be of type UnlimitedNatural and have a multiplicity of 1..1. Otherwise, the action has no input pin for the removal position.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swktBBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D40F9B18A0167" general="_3ADC7B74022D37497C230140"/>
<ownedAttribute xmi:id="_3ADC7B74022D40F9B147032D" name="isDestroyDuplicates">
<ownedComment xmi:id="_swktCBTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B147032D">
<body>Specifies whether to destroy duplicates of the value in nonunique association ends.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="Infrastructure.uml#_3ADC7B74022D3CA010AC0090"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_HUpooBTbEdqZu-3Jy1-uYg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D40F9B19B036A" name="destroyAt" type="_3ADC7B74022D384B237E021A" association="_3ADC7B74022D40F9B19902E5">
<ownedComment xmi:id="_sxw_6xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40F9B19B036A">
<body>Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_7xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_7hTaEdqZu-3Jy1-uYg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3ADC7B74022D40FAD18F0202" name="ValueSpecificationAction">
<ownedComment xmi:id="_swktDRTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40FAD18F0202">
<body>A value specification action is an action that evaluates a value specification.</body>
</ownedComment>
<ownedRule xmi:id="_swktFhTaEdqZu-3Jy1-uYg" name="compatible_type" constrainedElement="_3ADC7B74022D40FAD18F0202">
<ownedComment xmi:id="_swktEhTaEdqZu-3Jy1-uYg" annotatedElement="_swktFhTaEdqZu-3Jy1-uYg">
<body>The type of value specification must be compatible with the type of the result pin.</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swktFxTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="_swktHxTaEdqZu-3Jy1-uYg" name="multiplicity" constrainedElement="_3ADC7B74022D40FAD18F0202">
<ownedComment xmi:id="_swktGxTaEdqZu-3Jy1-uYg" annotatedElement="_swktHxTaEdqZu-3Jy1-uYg">
<body>The multiplicity of the result pin is 1..1</body>
</ownedComment>
<specification xmi:type="uml:OpaqueExpression" xmi:id="_swktIBTaEdqZu-3Jy1-uYg">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
<generalization xmi:id="_3ADC7B74022D40FAD24503D0" general="_3ADC7B74022D3DF3DB6F036B"/>
<ownedAttribute xmi:id="_3ADC7B74022D41B0DA9403C3" name="value" type="_3ADC7B74022D3D0254AB023D" aggregation="composite" association="_3ADC7B74022D41B0DA9400E8">
<ownedComment xmi:id="_sx6w2RTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D41B0DA9403C3">
<body>Value specification to be evaluated.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sx6w3RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sx6w3BTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
<ownedAttribute xmi:id="_3ADC7B74022D40FAD236031A" name="result" type="_3ADC7B74022D384B2387039A" aggregation="composite" subsettedProperty="_3ADC7B74022D3D716DC100E9" association="_3ADC7B74022D40FAD23502E7">
<ownedComment xmi:id="_sx6w4xTaEdqZu-3Jy1-uYg" annotatedElement="_3ADC7B74022D40FAD236031A">
<body>Gives the output pin on which the result is put.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sx6w5xTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sx6w5hTaEdqZu-3Jy1-uYg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D381D094C0361" name="A_classifier_createObjectAction" memberEnd="_3ADC7B74022D381D094D0268 _3ADC7B74022D381D094D0286">
<ownedEnd xmi:id="_3ADC7B74022D381D094D0286" type="_3ADC7B74022D3745CA3B0096" association="_3ADC7B74022D381D094C0361">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueBxTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueBhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38D6B2130145" name="A_result_createObjectAction" memberEnd="_3ADC7B74022D38D6B21303BC _3ADC7B74022D38D6B21303DA">
<ownedEnd xmi:id="_3ADC7B74022D38D6B21303DA" type="_3ADC7B74022D3745CA3B0096" association="_3ADC7B74022D38D6B2130145">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueERTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueEBTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D37497F3E0320" name="A_target_destroyObjectAction" memberEnd="_3ADC7B74022D37497F3F02E4 _3ADC7B74022D37497F3F02E5">
<ownedEnd xmi:id="_3ADC7B74022D37497F3F02E5" type="_3ADC7B74022D3745CA280212" association="_3ADC7B74022D37497F3E0320">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_swueGxTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_swueGhTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3CB5C7270200" name="A_first_testIdentityAction" memberEnd="_3ADC7B74022D3CB5C7280139 _3ADC7B74022D3CB5C72801CF">
<ownedEnd xmi:id="_3ADC7B74022D3CB5C72801CF" type="_3ADC7B74022D3AA55DF5017C" association="_3ADC7B74022D3CB5C7270200">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3n9hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3n9RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3CB5C72F02DE" name="A_second_testIdentityAction" memberEnd="_3ADC7B74022D3CB5C7300343 _3ADC7B74022D3CB5C73003BB">
<ownedEnd xmi:id="_3ADC7B74022D3CB5C73003BB" type="_3ADC7B74022D3AA55DF5017C" association="_3ADC7B74022D3CB5C72F02DE">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3oABTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3n_xTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3CB5C6930149" name="A_result_testIdentityAction" memberEnd="_3ADC7B74022D3CB5C6940046 _3ADC7B74022D3CB5C69400BE">
<ownedEnd xmi:id="_3ADC7B74022D3CB5C69400BE" type="_3ADC7B74022D3AA55DF5017C" association="_3ADC7B74022D3CB5C6930149">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3oChTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3oCRTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CFBA0032C" name="A_result_readSelfAction" memberEnd="_3ADC7B74022D395CFBA10125 _3ADC7B74022D395CFBA101CF">
<ownedEnd xmi:id="_3ADC7B74022D395CFBA101CF" type="_3ADC7B74022D38C96A5A00A7" association="_3ADC7B74022D395CFBA0032C">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sw3oFBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sw3oExTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38DC08B80279" name="A_structuralFeatureAction_structuralFeature" memberEnd="_3ADC7B74022D38DC08B8027A _3ADC7B74022D38DC08B8027B">
<ownedEnd xmi:id="_3ADC7B74022D38DC08B8027A" type="_3ADC7B74022D38DC060A01A0" association="_3ADC7B74022D38DC08B80279">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxBY8RTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxBY8BTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38DC073A0161" name="A_object_structuralFeatureAction" memberEnd="_3ADC7B74022D38DC073A03E2 _3ADC7B74022D38DC073B0036">
<ownedEnd xmi:id="_3ADC7B74022D38DC073B0036" type="_3ADC7B74022D38DC060A01A0" association="_3ADC7B74022D38DC073A0161">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxBZARTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxBZABTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CE0B30154" name="A_result_readStructuralFeatureAction" memberEnd="_3ADC7B74022D395CE0B3033E _3ADC7B74022D395CE0B303CB">
<ownedEnd xmi:id="_3ADC7B74022D395CE0B303CB" type="_3ADC7B74022D395CE0A502DA" association="_3ADC7B74022D395CE0B30154">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi5hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi5RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3907396402D5" name="A_value_writeStructuralFeatureAction" memberEnd="_3ADC7B74022D39073965015A _3ADC7B74022D390739650182">
<ownedEnd xmi:id="_3ADC7B74022D390739650182" type="_3ADC7B74022D380F43690262" association="_3ADC7B74022D3907396402D5">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi8BTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi7xTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3960D15B0367" name="A_insertAt_addStructuralFeatureValueAction" memberEnd="_3ADC7B74022D3960D15E0004 _3ADC7B74022D3960D15E00F4">
<ownedEnd xmi:id="_3ADC7B74022D3960D15E00F4" type="_3ADC7B74022D3A787176007B" association="_3ADC7B74022D3960D15B0367">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKi-hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKi-RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38DC049F0298" name="A_endData_linkAction" memberEnd="_3ADC7B74022D38DC04A0013B _3ADC7B74022D38DC04A0014F">
<ownedEnd xmi:id="_3ADC7B74022D38DC04A0014F" type="_3ADC7B74022D38DC038F0193" association="_3ADC7B74022D38DC049F0298">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxKjBBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxKjAxTaEdqZu-3Jy1-uYg" value="1"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D38C965AD0164" name="A_value_linkEndData" memberEnd="_3ADC7B74022D38C965AE012A _3ADC7B74022D38C965AE0148">
<ownedEnd xmi:id="_3ADC7B74022D38C965AE0148" type="_3ADC7B74022D37497C230140" association="_3ADC7B74022D38C965AD0164">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT5hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT5RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3D0CD47D0139" name="A_end_linkEndData" memberEnd="_3ADC7B74022D3D0CD47D03BA _3ADC7B74022D3D0CD47E000E">
<ownedEnd xmi:id="_3ADC7B74022D3D0CD47E000E" type="_3ADC7B74022D37497C230140" association="_3ADC7B74022D3D0CD47D0139">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT8BTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT7xTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D395CD521012D" name="A_result_readLinkAction" memberEnd="_3ADC7B74022D395CD52102DB _3ADC7B74022D395CD5210367">
<ownedEnd xmi:id="_3ADC7B74022D395CD5210367" type="_3ADC7B74022D395CD503027E" association="_3ADC7B74022D395CD521012D">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUT-hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUT-RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3960C173020D" name="A_insertAt_linkEndCreationData" memberEnd="_3ADC7B74022D3960C17401FA _3ADC7B74022D3960C17402CD">
<ownedEnd xmi:id="_3ADC7B74022D3960C17402CD" type="_3ADC7B74022D393AD8B602EE" association="_3ADC7B74022D3960C173020D">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxUUBBTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxUUAxTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D393AD8C202F5" name="A_endData_createLinkAction" memberEnd="_3ADC7B74022D393AD8C30256 _3ADC7B74022D393AD8C30260">
<ownedEnd xmi:id="_3ADC7B74022D393AD8C30260" type="_3ADC7B74022D3745C9F20140" association="_3ADC7B74022D393AD8C202F5">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxeE5hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxeE5RTaEdqZu-3Jy1-uYg" value="1"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3A78829802EF" name="A_object_clearAssociationAction" memberEnd="_3ADC7B74022D3A78829900DD _3ADC7B74022D3A7882990278">
<ownedEnd xmi:id="_3ADC7B74022D3A7882990278" type="_3ADC7B74022D3A787BA00221" association="_3ADC7B74022D3A78829802EF">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxeE8BTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxeE7xTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3A787C74030C" name="A_association_clearAssociationAction" memberEnd="_3ADC7B74022D3A787C7500FB _3ADC7B74022D3A787C75015F">
<ownedEnd xmi:id="_3ADC7B74022D3A787C75015F" type="_3ADC7B74022D3A787BA00221" association="_3ADC7B74022D3A787C74030C">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxnO0RTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxnO0BTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3D63D6EA030D" name="A_target_sendObjectAction" memberEnd="_3ADC7B74022D3D63D6EC034B _3ADC7B74022D3D63D6EC03D8">
<ownedEnd xmi:id="_3ADC7B74022D3D63D6EC03D8" type="_3ADC7B74022D3D63D34B001F" association="_3ADC7B74022D3D63D6EA030D">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6K2tYU-2EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6K2tYE-2EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3D63D77F0213" name="A_request_sendObjectAction" memberEnd="_3ADC7B74022D3D63D78001E4 _3ADC7B74022D3D63D7800271">
<ownedEnd xmi:id="_3ADC7B74022D3D63D7800271" type="_3ADC7B74022D3D63D34B001F" association="_3ADC7B74022D3D63D77F0213">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9kaqMU-2EduFOcgjjRrSMg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9kaqME-2EduFOcgjjRrSMg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D3B68A6DE01E8" name="A_signal_broadcastSignalAction" memberEnd="_3ADC7B74022D3B68A6DF00F9 _3ADC7B74022D3B68A6DF012B">
<ownedEnd xmi:id="_3ADC7B74022D3B68A6DF012B" type="_3ADC7B74022D3B68A64C002F" association="_3ADC7B74022D3B68A6DE01E8">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_3hTaEdqZu-3Jy1-uYg" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_3RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D40F9B01A029E" name="A_removeAt_removeStructuralFeatureValueAction" memberEnd="_3ADC7B74022D40F9B01C03C3 _3ADC7B74022D40F9B01D0017">
<ownedEnd xmi:id="_3ADC7B74022D40F9B01D0017" type="_3ADC7B74022D3A7870670003" association="_3ADC7B74022D40F9B01A029E">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_6BTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_5xTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D40F9B19902E5" name="A_destroyAt_linkEndDestructionData" memberEnd="_3ADC7B74022D40F9B19B036A _3ADC7B74022D40F9B19B039C">
<ownedEnd xmi:id="_3ADC7B74022D40F9B19B039C" type="_3ADC7B74022D40F9B109007B" association="_3ADC7B74022D40F9B19902E5">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sxw_8hTaEdqZu-3Jy1-uYg" value="1"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sxw_8RTaEdqZu-3Jy1-uYg"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_3ADC7B74022D40F9B1CF0008" name="A_endData_destroyLinkAction" memberEnd="_3ADC7B74022D40F9B1D1008D _3ADC7B74022D40F9B1D1008F">
<ownedEnd xmi:id="_3ADC7B74022D40F9B1D1008F" type="_3ADC7B74022D3745CA190280" association="_3ADC7B74022D40F9B1CF0008">