Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenn Hussey2011-11-28 15:42:58 +0000
committerKenn Hussey2011-11-28 15:42:58 +0000
commitf4c10f6a9c93a92854616471194d3d71897cf849 (patch)
tree9d2d25b00f9c8759b9201e1c92d1393b0f88a901
parentf34dca63b4e480cb3044837af88666617800976a (diff)
downloadorg.eclipse.uml2.test-f4c10f6a9c93a92854616471194d3d71897cf849.tar.gz
org.eclipse.uml2.test-f4c10f6a9c93a92854616471194d3d71897cf849.tar.xz
org.eclipse.uml2.test-f4c10f6a9c93a92854616471194d3d71897cf849.zip
[351774] Updating resources based on UML 2.4.1.
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/libraries/EcorePrimitiveTypes.library.uml2
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/libraries/JavaPrimitiveTypes.library.uml2
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/libraries/UMLPrimitiveTypes.library.uml4
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/libraries/XMLPrimitiveTypes.library.uml2
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/metamodels/Ecore.metamodel.uml2
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.properties5
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.uml3273
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/profiles/Ecore.profile.uml2
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/profiles/StandardL2.profile.uml4
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/profiles/StandardL3.profile.uml13
-rw-r--r--plugins/org.eclipse.uml2.uml.resources/profiles/UML2.profile.uml2
11 files changed, 1652 insertions, 1659 deletions
diff --git a/plugins/org.eclipse.uml2.uml.resources/libraries/EcorePrimitiveTypes.library.uml b/plugins/org.eclipse.uml2.uml.resources/libraries/EcorePrimitiveTypes.library.uml
index afaf06ec..4de55c77 100644
--- a/plugins/org.eclipse.uml2.uml.resources/libraries/EcorePrimitiveTypes.library.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/libraries/EcorePrimitiveTypes.library.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
<uml:Model xmi:id="_0" name="EcorePrimitiveTypes">
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="EBigDecimal" name="EBigDecimal"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="EBigInteger" name="EBigInteger"/>
diff --git a/plugins/org.eclipse.uml2.uml.resources/libraries/JavaPrimitiveTypes.library.uml b/plugins/org.eclipse.uml2.uml.resources/libraries/JavaPrimitiveTypes.library.uml
index 9c890495..b3068c8b 100644
--- a/plugins/org.eclipse.uml2.uml.resources/libraries/JavaPrimitiveTypes.library.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/libraries/JavaPrimitiveTypes.library.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
<uml:Model xmi:id="_0" name="JavaPrimitiveTypes">
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="boolean" name="boolean"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="byte" name="byte"/>
diff --git a/plugins/org.eclipse.uml2.uml.resources/libraries/UMLPrimitiveTypes.library.uml b/plugins/org.eclipse.uml2.uml.resources/libraries/UMLPrimitiveTypes.library.uml
index cc3a9f0d..bfcbde3a 100644
--- a/plugins/org.eclipse.uml2.uml.resources/libraries/UMLPrimitiveTypes.library.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/libraries/UMLPrimitiveTypes.library.uml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
- <uml:Model xmi:id="_0" name="PrimitiveTypes" URI="http://www.omg.org/spec/PrimitiveTypes/20100901">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_0" name="PrimitiveTypes" URI="http://www.omg.org/spec/PrimitiveTypes/20110701">
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="Boolean" name="Boolean">
<ownedComment xmi:id="Boolean-_ownedComment.0" annotatedElement="Boolean">
<body>A Boolean type is used for logical expression, consisting of the predefined values true and false.</body>
diff --git a/plugins/org.eclipse.uml2.uml.resources/libraries/XMLPrimitiveTypes.library.uml b/plugins/org.eclipse.uml2.uml.resources/libraries/XMLPrimitiveTypes.library.uml
index 753c65fc..5cf03beb 100644
--- a/plugins/org.eclipse.uml2.uml.resources/libraries/XMLPrimitiveTypes.library.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/libraries/XMLPrimitiveTypes.library.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
<uml:Model xmi:id="_0" name="XMLPrimitiveTypes">
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="AnySimpleType" name="AnySimpleType"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="AnyURI" name="AnyURI"/>
diff --git a/plugins/org.eclipse.uml2.uml.resources/metamodels/Ecore.metamodel.uml b/plugins/org.eclipse.uml2.uml.resources/metamodels/Ecore.metamodel.uml
index 988bde00..4f1950ab 100644
--- a/plugins/org.eclipse.uml2.uml.resources/metamodels/Ecore.metamodel.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/metamodels/Ecore.metamodel.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:l3="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L3" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:l3="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L3" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Model xmi:id="_0" name="Ecore">
<packagedElement xmi:type="uml:Class" xmi:id="EAnnotation" name="EAnnotation">
<eAnnotations xmi:id="EAnnotation-_http2F2Fwww.eclipse.org2Femf2F20022FEcore" source="http://www.eclipse.org/emf/2002/Ecore">
diff --git a/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.properties b/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.properties
index 17b4154e..a3101f50 100644
--- a/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.properties
+++ b/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.properties
@@ -7,12 +7,12 @@
# Contributors:
# IBM - initial API and implementation
# Kenn Hussey (Embarcadero Technologies) - 205188, 226397
-# Kenn Hussey (CEA) - 327039
+# Kenn Hussey (CEA) - 327039, 351774
#
# NLS_MESSAGEFORMAT_VAR
-_label_UML = UML 2.4 Metamodel
+_label_UML = UML 2.4.1 Metamodel
_label_UML__Abstraction = Abstraction
_label_UML__Abstraction__mapping = Mapping
_label_UML__AcceptCallAction = Accept Call Action
@@ -42,7 +42,6 @@ _label_UML__Activity__node = Node
_label_UML__Activity__partition = Partition
_label_UML__Activity__structuredNode = Structured Node
_label_UML__Activity__variable = Variable
-_label_UML__Activity__structuredNode__result = Result
_label_UML__ActivityEdge = Activity Edge
_label_UML__ActivityEdge__activity = Activity
_label_UML__ActivityEdge__guard = Guard
diff --git a/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.uml b/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.uml
index 674435c6..b6549fe5 100644
--- a/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/metamodels/UML.metamodel.uml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:l3="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L3" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
- <uml:Model xmi:id="_0" name="UML" URI="http://www.omg.org/spec/UML/20100901">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:l3="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L3" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_0" name="UML" URI="http://www.omg.org/spec/UML/20110701">
<packageImport xmi:id="_packageImport.0">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
</packageImport>
@@ -712,7 +712,7 @@
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_manifestation_artifact" name="A_manifestation_artifact" visibility="private" memberEnd="Artifact-manifestation A_manifestation_artifact-artifact">
- <ownedEnd xmi:id="A_manifestation_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="Dependency-client Element-owner" association="A_manifestation_artifact"/>
+ <ownedEnd xmi:id="A_manifestation_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="Element-owner Dependency-client" association="A_manifestation_artifact"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_mapping_abstraction" name="A_mapping_abstraction" visibility="private" memberEnd="Abstraction-mapping A_mapping_abstraction-abstraction">
<ownedEnd xmi:id="A_mapping_abstraction-abstraction" name="abstraction" visibility="public" type="Abstraction" subsettedProperty="Element-owner" association="A_mapping_abstraction">
@@ -822,12 +822,12 @@
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_nestedClassifier_class" name="A_nestedClassifier_class" visibility="private" memberEnd="Class-nestedClassifier A_nestedClassifier_class-class">
- <ownedEnd xmi:id="A_nestedClassifier_class-class" name="class" visibility="public" type="Class" subsettedProperty="NamedElement-namespace RedefinableElement-redefinitionContext" association="A_nestedClassifier_class">
+ <ownedEnd xmi:id="A_nestedClassifier_class-class" name="class" visibility="public" type="Class" subsettedProperty="RedefinableElement-redefinitionContext NamedElement-namespace" association="A_nestedClassifier_class">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_nestedClassifier_class-class-_lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_nestedClassifier_interface" name="A_nestedClassifier_interface" visibility="private" memberEnd="Interface-nestedClassifier A_nestedClassifier_interface-interface">
- <ownedEnd xmi:id="A_nestedClassifier_interface-interface" name="interface" visibility="public" type="Interface" subsettedProperty="NamedElement-namespace RedefinableElement-redefinitionContext" association="A_nestedClassifier_interface">
+ <ownedEnd xmi:id="A_nestedClassifier_interface-interface" name="interface" visibility="public" type="Interface" subsettedProperty="RedefinableElement-redefinitionContext NamedElement-namespace" association="A_nestedClassifier_interface">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_nestedClassifier_interface-interface-_lowerValue"/>
</ownedEnd>
</packagedElement>
@@ -960,7 +960,7 @@
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedAttribute_artifact" name="A_ownedAttribute_artifact" visibility="private" memberEnd="Artifact-ownedAttribute A_ownedAttribute_artifact-artifact">
- <ownedEnd xmi:id="A_ownedAttribute_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="NamedElement-namespace A_attribute_classifier-classifier" association="A_ownedAttribute_artifact">
+ <ownedEnd xmi:id="A_ownedAttribute_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="A_attribute_classifier-classifier NamedElement-namespace" association="A_ownedAttribute_artifact">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedAttribute_artifact-artifact-_lowerValue"/>
</ownedEnd>
</packagedElement>
@@ -968,13 +968,13 @@
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedAttribute_datatype" name="A_ownedAttribute_datatype" visibility="private" memberEnd="DataType-ownedAttribute Property-datatype"/>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedAttribute_interface" name="A_ownedAttribute_interface" visibility="private" memberEnd="Interface-ownedAttribute Property-interface"/>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedAttribute_owningSignal" name="A_ownedAttribute_owningSignal" visibility="private" memberEnd="Signal-ownedAttribute A_ownedAttribute_owningSignal-owningSignal">
- <ownedEnd xmi:id="A_ownedAttribute_owningSignal-owningSignal" name="owningSignal" visibility="public" type="Signal" subsettedProperty="NamedElement-namespace A_attribute_classifier-classifier" association="A_ownedAttribute_owningSignal">
+ <ownedEnd xmi:id="A_ownedAttribute_owningSignal-owningSignal" name="owningSignal" visibility="public" type="Signal" subsettedProperty="A_attribute_classifier-classifier NamedElement-namespace" association="A_ownedAttribute_owningSignal">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedAttribute_owningSignal-owningSignal-_lowerValue"/>
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedAttribute_structuredClassifier" name="A_ownedAttribute_structuredClassifier" visibility="private" memberEnd="StructuredClassifier-ownedAttribute A_ownedAttribute_structuredClassifier-structuredClassifier">
<generalization xmi:id="A_ownedAttribute_structuredClassifier-_generalization.0" general="A_role_structuredClassifier"/>
- <ownedEnd xmi:id="A_ownedAttribute_structuredClassifier-structuredClassifier" name="structuredClassifier" visibility="public" type="StructuredClassifier" redefinedProperty="A_role_structuredClassifier-structuredClassifier" subsettedProperty="NamedElement-namespace A_attribute_classifier-classifier" association="A_ownedAttribute_structuredClassifier">
+ <ownedEnd xmi:id="A_ownedAttribute_structuredClassifier-structuredClassifier" name="structuredClassifier" visibility="public" type="StructuredClassifier" redefinedProperty="A_role_structuredClassifier-structuredClassifier" subsettedProperty="A_attribute_classifier-classifier NamedElement-namespace" association="A_ownedAttribute_structuredClassifier">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedAttribute_structuredClassifier-structuredClassifier-_lowerValue"/>
</ownedEnd>
</packagedElement>
@@ -989,7 +989,7 @@
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedConnector_structuredClassifier" name="A_ownedConnector_structuredClassifier" visibility="private" memberEnd="StructuredClassifier-ownedConnector A_ownedConnector_structuredClassifier-structuredClassifier">
- <ownedEnd xmi:id="A_ownedConnector_structuredClassifier-structuredClassifier" name="structuredClassifier" visibility="public" type="StructuredClassifier" subsettedProperty="Feature-featuringClassifier NamedElement-namespace RedefinableElement-redefinitionContext" association="A_ownedConnector_structuredClassifier">
+ <ownedEnd xmi:id="A_ownedConnector_structuredClassifier-structuredClassifier" name="structuredClassifier" visibility="public" type="StructuredClassifier" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace" association="A_ownedConnector_structuredClassifier">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedConnector_structuredClassifier-structuredClassifier-_lowerValue"/>
</ownedEnd>
</packagedElement>
@@ -1007,7 +1007,7 @@
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedLiteral_enumeration" name="A_ownedLiteral_enumeration" visibility="private" memberEnd="Enumeration-ownedLiteral EnumerationLiteral-enumeration"/>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedMember_namespace" name="A_ownedMember_namespace" visibility="private" isDerived="true" memberEnd="Namespace-ownedMember NamedElement-namespace"/>
<packagedElement xmi:type="uml:Association" xmi:id="A_ownedOperation_artifact" name="A_ownedOperation_artifact" visibility="private" memberEnd="Artifact-ownedOperation A_ownedOperation_artifact-artifact">
- <ownedEnd xmi:id="A_ownedOperation_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="Feature-featuringClassifier NamedElement-namespace RedefinableElement-redefinitionContext" association="A_ownedOperation_artifact">
+ <ownedEnd xmi:id="A_ownedOperation_artifact-artifact" name="artifact" visibility="public" type="Artifact" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace" association="A_ownedOperation_artifact">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_ownedOperation_artifact-artifact-_lowerValue"/>
</ownedEnd>
</packagedElement>
@@ -1907,15 +1907,6 @@
<ownedComment xmi:id="AcceptCallAction-_ownedComment.0" annotatedElement="AcceptCallAction">
<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="AcceptCallAction-result_pins" name="result_pins" constrainedElement="AcceptCallAction">
- <ownedComment xmi:id="AcceptCallAction-result_pins-_ownedComment.0" annotatedElement="AcceptCallAction-result_pins">
- <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="AcceptCallAction-result_pins-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="AcceptCallAction-trigger_call_event" name="trigger_call_event" constrainedElement="AcceptCallAction">
<ownedComment xmi:id="AcceptCallAction-trigger_call_event-_ownedComment.0" annotatedElement="AcceptCallAction-trigger_call_event">
<body>The trigger event must be a CallEvent.</body>
@@ -1934,6 +1925,15 @@
<body>isUnmarshall = true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="AcceptCallAction-result_pins" name="result_pins" constrainedElement="AcceptCallAction">
+ <ownedComment xmi:id="AcceptCallAction-result_pins-_ownedComment.0" annotatedElement="AcceptCallAction-result_pins">
+ <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="AcceptCallAction-result_pins-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="AcceptCallAction-_generalization.0" general="AcceptEventAction"/>
<ownedAttribute xmi:id="AcceptCallAction-returnInformation" name="returnInformation" visibility="public" type="OutputPin" aggregation="composite" subsettedProperty="Action-output" association="A_returnInformation_acceptCallAction">
<ownedComment xmi:id="AcceptCallAction-returnInformation-_ownedComment.0" annotatedElement="AcceptCallAction-returnInformation">
@@ -1945,15 +1945,6 @@
<ownedComment xmi:id="AcceptEventAction-_ownedComment.0" annotatedElement="AcceptEventAction">
<body>A accept event action is an action that waits for the occurrence of an event meeting specified conditions.</body>
</ownedComment>
- <ownedRule xmi:id="AcceptEventAction-trigger_events" name="trigger_events" constrainedElement="AcceptEventAction">
- <ownedComment xmi:id="AcceptEventAction-trigger_events-_ownedComment.0" annotatedElement="AcceptEventAction-trigger_events">
- <body>If the trigger events are all TimeEvents, there is exactly one output pin.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="AcceptEventAction-trigger_events-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="AcceptEventAction-no_input_pins" name="no_input_pins" constrainedElement="AcceptEventAction">
<ownedComment xmi:id="AcceptEventAction-no_input_pins-_ownedComment.0" annotatedElement="AcceptEventAction-no_input_pins">
<body>AcceptEventActions may have no input pins.</body>
@@ -1963,11 +1954,11 @@
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="AcceptEventAction-no_output_pins" name="no_output_pins" constrainedElement="AcceptEventAction">
- <ownedComment xmi:id="AcceptEventAction-no_output_pins-_ownedComment.0" annotatedElement="AcceptEventAction-no_output_pins">
- <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>
+ <ownedRule xmi:id="AcceptEventAction-trigger_events" name="trigger_events" constrainedElement="AcceptEventAction">
+ <ownedComment xmi:id="AcceptEventAction-trigger_events-_ownedComment.0" annotatedElement="AcceptEventAction-trigger_events">
+ <body>If the trigger events are all TimeEvents, there is exactly one output pin.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="AcceptEventAction-no_output_pins-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="AcceptEventAction-trigger_events-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -1981,6 +1972,15 @@
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="AcceptEventAction-no_output_pins" name="no_output_pins" constrainedElement="AcceptEventAction">
+ <ownedComment xmi:id="AcceptEventAction-no_output_pins-_ownedComment.0" annotatedElement="AcceptEventAction-no_output_pins">
+ <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="AcceptEventAction-no_output_pins-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="AcceptEventAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="AcceptEventAction-isUnmarshall" name="isUnmarshall" visibility="public">
<ownedComment xmi:id="AcceptEventAction-isUnmarshall-_ownedComment.0" annotatedElement="AcceptEventAction-isUnmarshall">
@@ -2008,10 +2008,10 @@
<body>An action has pre- and post-conditions.</body>
</ownedComment>
<ownedComment xmi:id="Action-_ownedComment.1" annotatedElement="Action">
- <body>An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.</body>
+ <body>An action represents a single step within an activity, that is, one that is not further decomposed within the activity.</body>
</ownedComment>
<ownedComment xmi:id="Action-_ownedComment.2" annotatedElement="Action">
- <body>An action represents a single step within an activity, that is, one that is not further decomposed within the activity.</body>
+ <body>An action is a named element that is the fundamental unit of executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.</body>
</ownedComment>
<generalization xmi:id="Action-_generalization.0" general="ExecutableNode"/>
<ownedAttribute xmi:id="Action-context" name="context" visibility="public" type="Classifier" isReadOnly="true" isDerived="true" association="A_context_action">
@@ -2103,20 +2103,20 @@
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActionInputPin-one_output_pin" name="one_output_pin" constrainedElement="ActionInputPin">
- <ownedComment xmi:id="ActionInputPin-one_output_pin-_ownedComment.0" annotatedElement="ActionInputPin-one_output_pin">
- <body>The fromAction of an action input pin must have exactly one output pin.</body>
+ <ownedRule xmi:id="ActionInputPin-no_control_or_data_flow" name="no_control_or_data_flow" constrainedElement="ActionInputPin">
+ <ownedComment xmi:id="ActionInputPin-no_control_or_data_flow-_ownedComment.0" annotatedElement="ActionInputPin-no_control_or_data_flow">
+ <body>The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActionInputPin-one_output_pin-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActionInputPin-no_control_or_data_flow-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActionInputPin-no_control_or_data_flow" name="no_control_or_data_flow" constrainedElement="ActionInputPin">
- <ownedComment xmi:id="ActionInputPin-no_control_or_data_flow-_ownedComment.0" annotatedElement="ActionInputPin-no_control_or_data_flow">
- <body>The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.</body>
+ <ownedRule xmi:id="ActionInputPin-one_output_pin" name="one_output_pin" constrainedElement="ActionInputPin">
+ <ownedComment xmi:id="ActionInputPin-one_output_pin-_ownedComment.0" annotatedElement="ActionInputPin-one_output_pin">
+ <body>The fromAction of an action input pin must have exactly one output pin.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActionInputPin-no_control_or_data_flow-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActionInputPin-one_output_pin-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -2132,6 +2132,15 @@
<ownedComment xmi:id="Activity-_ownedComment.0" annotatedElement="Activity">
<body>An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions.</body>
</ownedComment>
+ <ownedRule xmi:id="Activity-activity_parameter_node" name="activity_parameter_node" constrainedElement="Activity">
+ <ownedComment xmi:id="Activity-activity_parameter_node-_ownedComment.0" annotatedElement="Activity-activity_parameter_node">
+ <body>The nodes of the activity must include one ActivityParameterNode for each parameter.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Activity-activity_parameter_node-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Activity-autonomous" name="autonomous" constrainedElement="Activity">
<ownedComment xmi:id="Activity-autonomous-_ownedComment.0" annotatedElement="Activity-autonomous">
<body>An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.</body>
@@ -2150,15 +2159,6 @@
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Activity-activity_parameter_node" name="activity_parameter_node" constrainedElement="Activity">
- <ownedComment xmi:id="Activity-activity_parameter_node-_ownedComment.0" annotatedElement="Activity-activity_parameter_node">
- <body>The nodes of the activity must include one ActivityParameterNode for each parameter.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Activity-activity_parameter_node-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<generalization xmi:id="Activity-_generalization.0" general="Behavior"/>
<ownedAttribute xmi:id="Activity-edge" name="edge" visibility="public" type="ActivityEdge" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_edge_activity">
<ownedComment xmi:id="Activity-edge-_ownedComment.0" annotatedElement="Activity-edge">
@@ -2202,7 +2202,7 @@
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Activity-partition-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Activity-partition-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Activity-structuredNode" name="structuredNode" visibility="public" type="StructuredActivityNode" isReadOnly="true" aggregation="composite" isDerived="true" subsettedProperty="Activity-group Activity-node" association="A_structuredNode_activity">
+ <ownedAttribute xmi:id="Activity-structuredNode" name="structuredNode" visibility="public" type="StructuredActivityNode" aggregation="composite" subsettedProperty="Activity-group Activity-node" association="A_structuredNode_activity">
<ownedComment xmi:id="Activity-structuredNode-_ownedComment.0" annotatedElement="Activity-structuredNode">
<body>Top-level structured nodes in the activity.</body>
</ownedComment>
@@ -2216,28 +2216,13 @@
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Activity-variable-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Activity-variable-_upperValue" value="*"/>
</ownedAttribute>
- <ownedOperation xmi:id="Activity-structuredNode.1" name="structuredNode" visibility="public" bodyCondition="Activity-structuredNode.1-spec" isQuery="true">
- <ownedComment xmi:id="Activity-structuredNode.1-_ownedComment.0" annotatedElement="Activity-structuredNode.1">
- <body>Missing derivation for Activity::/structuredNode : StructuredActivityNode</body>
- </ownedComment>
- <ownedRule xmi:id="Activity-structuredNode.1-spec" name="spec" constrainedElement="Activity-structuredNode.1 Activity-structuredNode">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Activity-structuredNode.1-spec-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedParameter xmi:id="Activity-structuredNode.1-result" name="result" visibility="public" type="StructuredActivityNode" direction="return">
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="Activity-structuredNode.1-result-_lowerValue"/>
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Activity-structuredNode.1-result-_upperValue" value="*"/>
- </ownedParameter>
- </ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="ActivityEdge" name="ActivityEdge" isAbstract="true">
<ownedComment xmi:id="ActivityEdge-_ownedComment.0" annotatedElement="ActivityEdge">
- <body>An activity edge is an abstract class for directed connections between two activity nodes.</body>
+ <body>Activity edges can be contained in interruptible regions.</body>
</ownedComment>
<ownedComment xmi:id="ActivityEdge-_ownedComment.1" annotatedElement="ActivityEdge">
- <body>Activity edges can be contained in interruptible regions.</body>
+ <body>An activity edge is an abstract class for directed connections between two activity nodes.</body>
</ownedComment>
<ownedRule xmi:id="ActivityEdge-owned" name="owned" constrainedElement="ActivityEdge">
<ownedComment xmi:id="ActivityEdge-owned-_ownedComment.0" annotatedElement="ActivityEdge-owned">
@@ -2337,15 +2322,6 @@
<ownedComment xmi:id="ActivityGroup-_ownedComment.0" annotatedElement="ActivityGroup">
<body>ActivityGroup is an abstract class for defining sets of nodes and edges in an activity.</body>
</ownedComment>
- <ownedRule xmi:id="ActivityGroup-nodes_and_edges" name="nodes_and_edges" constrainedElement="ActivityGroup">
- <ownedComment xmi:id="ActivityGroup-nodes_and_edges-_ownedComment.0" annotatedElement="ActivityGroup-nodes_and_edges">
- <body>All nodes and edges of the group must be in the same activity as the group.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityGroup-nodes_and_edges-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ActivityGroup-group_owned" name="group_owned" constrainedElement="ActivityGroup">
<ownedComment xmi:id="ActivityGroup-group_owned-_ownedComment.0" annotatedElement="ActivityGroup-group_owned">
<body>Groups may only be owned by activities or groups.</body>
@@ -2364,6 +2340,15 @@
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ActivityGroup-nodes_and_edges" name="nodes_and_edges" constrainedElement="ActivityGroup">
+ <ownedComment xmi:id="ActivityGroup-nodes_and_edges-_ownedComment.0" annotatedElement="ActivityGroup-nodes_and_edges">
+ <body>All nodes and edges of the group must be in the same activity as the group.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityGroup-nodes_and_edges-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ActivityGroup-_generalization.0" general="NamedElement"/>
<ownedAttribute xmi:id="ActivityGroup-containedEdge" name="containedEdge" visibility="public" type="ActivityEdge" isReadOnly="true" isDerived="true" isDerivedUnion="true" association="A_containedEdge_inGroup">
<ownedComment xmi:id="ActivityGroup-containedEdge-_ownedComment.0" annotatedElement="ActivityGroup-containedEdge">
@@ -2449,7 +2434,7 @@
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="ActivityNode-inPartition-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ActivityNode-inPartition-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="ActivityNode-inStructuredNode" name="inStructuredNode" visibility="public" type="StructuredActivityNode" subsettedProperty="Element-owner ActivityNode-inGroup" association="A_node_inStructuredNode">
+ <ownedAttribute xmi:id="ActivityNode-inStructuredNode" name="inStructuredNode" visibility="public" type="StructuredActivityNode" subsettedProperty="ActivityNode-inGroup Element-owner" association="A_node_inStructuredNode">
<ownedComment xmi:id="ActivityNode-inStructuredNode-_ownedComment.0" annotatedElement="ActivityNode-inStructuredNode">
<body>Structured activity node containing the node.</body>
</ownedComment>
@@ -2481,11 +2466,11 @@
<ownedComment xmi:id="ActivityParameterNode-_ownedComment.0" annotatedElement="ActivityParameterNode">
<body>An activity parameter node is an object node for inputs and outputs to activities.</body>
</ownedComment>
- <ownedRule xmi:id="ActivityParameterNode-no_outgoing_edges" name="no_outgoing_edges" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-no_outgoing_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_outgoing_edges">
- <body>Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.</body>
+ <ownedRule xmi:id="ActivityParameterNode-maximum_one_parameter_node" name="maximum_one_parameter_node" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-maximum_one_parameter_node-_ownedComment.0" annotatedElement="ActivityParameterNode-maximum_one_parameter_node">
+ <body>A parameter with direction other than inout must have at most one activity parameter node in an activity.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_outgoing_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-maximum_one_parameter_node-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -2499,47 +2484,47 @@
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityParameterNode-has_parameters" name="has_parameters" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-has_parameters-_ownedComment.0" annotatedElement="ActivityParameterNode-has_parameters">
- <body>Activity parameter nodes must have parameters from the containing activity.</body>
+ <ownedRule xmi:id="ActivityParameterNode-no_edges" name="no_edges" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-no_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_edges">
+ <body>An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-has_parameters-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityParameterNode-same_type" name="same_type" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-same_type-_ownedComment.0" annotatedElement="ActivityParameterNode-same_type">
- <body>The type of an activity parameter node is the same as the type of its parameter.</body>
+ <ownedRule xmi:id="ActivityParameterNode-no_incoming_edges" name="no_incoming_edges" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-no_incoming_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_incoming_edges">
+ <body>Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-same_type-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_incoming_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityParameterNode-maximum_one_parameter_node" name="maximum_one_parameter_node" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-maximum_one_parameter_node-_ownedComment.0" annotatedElement="ActivityParameterNode-maximum_one_parameter_node">
- <body>A parameter with direction other than inout must have at most one activity parameter node in an activity.</body>
+ <ownedRule xmi:id="ActivityParameterNode-no_outgoing_edges" name="no_outgoing_edges" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-no_outgoing_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_outgoing_edges">
+ <body>Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-maximum_one_parameter_node-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_outgoing_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityParameterNode-no_incoming_edges" name="no_incoming_edges" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-no_incoming_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_incoming_edges">
- <body>Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.</body>
+ <ownedRule xmi:id="ActivityParameterNode-same_type" name="same_type" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-same_type-_ownedComment.0" annotatedElement="ActivityParameterNode-same_type">
+ <body>The type of an activity parameter node is the same as the type of its parameter.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_incoming_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-same_type-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityParameterNode-no_edges" name="no_edges" constrainedElement="ActivityParameterNode">
- <ownedComment xmi:id="ActivityParameterNode-no_edges-_ownedComment.0" annotatedElement="ActivityParameterNode-no_edges">
- <body>An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.</body>
+ <ownedRule xmi:id="ActivityParameterNode-has_parameters" name="has_parameters" constrainedElement="ActivityParameterNode">
+ <ownedComment xmi:id="ActivityParameterNode-has_parameters-_ownedComment.0" annotatedElement="ActivityParameterNode-has_parameters">
+ <body>Activity parameter nodes must have parameters from the containing activity.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-no_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityParameterNode-has_parameters-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -2555,6 +2540,15 @@
<ownedComment xmi:id="ActivityPartition-_ownedComment.0" annotatedElement="ActivityPartition">
<body>An activity partition is a kind of activity group for identifying actions that have some characteristic in common.</body>
</ownedComment>
+ <ownedRule xmi:id="ActivityPartition-represents_part" name="represents_part" constrainedElement="ActivityPartition">
+ <ownedComment xmi:id="ActivityPartition-represents_part-_ownedComment.0" annotatedElement="ActivityPartition-represents_part">
+ <body>If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityPartition-represents_part-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="ActivityPartition-represents_classifier" name="represents_classifier" constrainedElement="ActivityPartition">
<ownedComment xmi:id="ActivityPartition-represents_classifier-_ownedComment.0" annotatedElement="ActivityPartition-represents_classifier">
<body>If a non-external partition represents a classifier and is contained in another partition, then the containing partition must represent a classifier, and the classifier of the subpartition must be nested in the classifier represented by the containing partition, or be at the contained end of a strong composition association with the classifier represented by the containing partition.</body>
@@ -2573,15 +2567,6 @@
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ActivityPartition-represents_part" name="represents_part" constrainedElement="ActivityPartition">
- <ownedComment xmi:id="ActivityPartition-represents_part-_ownedComment.0" annotatedElement="ActivityPartition-represents_part">
- <body>If a partition represents a part, then all the non-external partitions in the same dimension and at the same level of nesting in that dimension must represent parts directly contained in the internal structure of the same classifier.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ActivityPartition-represents_part-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ActivityPartition-dimension_not_contained" name="dimension_not_contained" constrainedElement="ActivityPartition">
<ownedComment xmi:id="ActivityPartition-dimension_not_contained-_ownedComment.0" annotatedElement="ActivityPartition-dimension_not_contained">
<body>A partition with isDimension = true may not be contained by another partition.</body>
@@ -2673,15 +2658,6 @@
<ownedComment xmi:id="AddStructuralFeatureValueAction-_ownedComment.0" annotatedElement="AddStructuralFeatureValueAction">
<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="AddStructuralFeatureValueAction-required_value" name="required_value" constrainedElement="AddStructuralFeatureValueAction">
- <ownedComment xmi:id="AddStructuralFeatureValueAction-required_value-_ownedComment.0" annotatedElement="AddStructuralFeatureValueAction-required_value">
- <body>A value input pin is required.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="AddStructuralFeatureValueAction-required_value-_specification">
- <language>OCL</language>
- <body>self.value -> notEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="AddStructuralFeatureValueAction-unlimited_natural_and_multiplicity" name="unlimited_natural_and_multiplicity" constrainedElement="AddStructuralFeatureValueAction">
<ownedComment xmi:id="AddStructuralFeatureValueAction-unlimited_natural_and_multiplicity-_ownedComment.0" annotatedElement="AddStructuralFeatureValueAction-unlimited_natural_and_multiplicity">
<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>
@@ -2699,6 +2675,15 @@ endif
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="AddStructuralFeatureValueAction-required_value" name="required_value" constrainedElement="AddStructuralFeatureValueAction">
+ <ownedComment xmi:id="AddStructuralFeatureValueAction-required_value-_ownedComment.0" annotatedElement="AddStructuralFeatureValueAction-required_value">
+ <body>A value input pin is required.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="AddStructuralFeatureValueAction-required_value-_specification">
+ <language>OCL</language>
+ <body>self.value -> notEmpty()</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="AddStructuralFeatureValueAction-_generalization.0" general="WriteStructuralFeatureAction"/>
<ownedAttribute xmi:id="AddStructuralFeatureValueAction-insertAt" name="insertAt" visibility="public" type="InputPin" aggregation="composite" subsettedProperty="Action-input" association="A_insertAt_addStructuralFeatureValueAction">
<ownedComment xmi:id="AddStructuralFeatureValueAction-insertAt-_ownedComment.0" annotatedElement="AddStructuralFeatureValueAction-insertAt">
@@ -2767,13 +2752,13 @@ endif
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Artifact" name="Artifact">
<ownedComment xmi:id="Artifact-_ownedComment.0" annotatedElement="Artifact">
- <body>An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.</body>
+ <body>An artifact is the source of a deployment to a node.</body>
</ownedComment>
<ownedComment xmi:id="Artifact-_ownedComment.1" annotatedElement="Artifact">
- <body>An artifact is the source of a deployment to a node.</body>
+ <body>An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.</body>
</ownedComment>
- <generalization xmi:id="Artifact-_generalization.0" general="Classifier"/>
- <generalization xmi:id="Artifact-_generalization.1" general="DeployedArtifact"/>
+ <generalization xmi:id="Artifact-_generalization.0" general="DeployedArtifact"/>
+ <generalization xmi:id="Artifact-_generalization.1" general="Classifier"/>
<ownedAttribute xmi:id="Artifact-fileName" name="fileName" visibility="public">
<ownedComment xmi:id="Artifact-fileName-_ownedComment.0" annotatedElement="Artifact-fileName">
<body>A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.</body>
@@ -2795,7 +2780,7 @@ endif
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Artifact-nestedArtifact-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Artifact-nestedArtifact-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Artifact-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute Namespace-ownedMember" association="A_ownedAttribute_artifact">
+ <ownedAttribute xmi:id="Artifact-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Namespace-ownedMember Classifier-attribute" association="A_ownedAttribute_artifact">
<ownedComment xmi:id="Artifact-ownedAttribute-_ownedComment.0" annotatedElement="Artifact-ownedAttribute">
<body>The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.</body>
</ownedComment>
@@ -2826,15 +2811,13 @@ endif
<body>parents()->select(oclIsKindOf(Association)).oclAsType(Association)->forAll(p | p.memberEnd->size() = self.memberEnd->size())</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Association-specialized_end_types" name="specialized_end_types" constrainedElement="Association">
- <ownedComment xmi:id="Association-specialized_end_types-_ownedComment.0" annotatedElement="Association-specialized_end_types">
- <body>When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.</body>
+ <ownedRule xmi:id="Association-association_ends" name="association_ends" constrainedElement="Association">
+ <ownedComment xmi:id="Association-association_ends-_ownedComment.0" annotatedElement="Association-association_ends">
+ <body>Association ends of associations with more than two ends must be owned by the association.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Association-specialized_end_types-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Association-association_ends-_specification">
<language>OCL</language>
- <body>Sequence{1..self.memberEnd->size()}->
- forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->
- forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))</body>
+ <body>if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Association-binary_associations" name="binary_associations" constrainedElement="Association">
@@ -2846,17 +2829,19 @@ endif
<body>self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Association-association_ends" name="association_ends" constrainedElement="Association">
- <ownedComment xmi:id="Association-association_ends-_ownedComment.0" annotatedElement="Association-association_ends">
- <body>Association ends of associations with more than two ends must be owned by the association.</body>
+ <ownedRule xmi:id="Association-specialized_end_types" name="specialized_end_types" constrainedElement="Association">
+ <ownedComment xmi:id="Association-specialized_end_types-_ownedComment.0" annotatedElement="Association-specialized_end_types">
+ <body>When an association specializes another association, every end of the specific association corresponds to an end of the general association, and the specific end reaches the same type or a subtype of the more general end.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Association-association_ends-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Association-specialized_end_types-_specification">
<language>OCL</language>
- <body>if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)</body>
+ <body>Sequence{1..self.memberEnd->size()}->
+ forAll(i | self.general->select(oclIsKindOf(Association)).oclAsType(Association)->
+ forAll(ga |self.memberEnd->at(i).type.conformsTo(ga.memberEnd->at(i).type)))</body>
</specification>
</ownedRule>
- <generalization xmi:id="Association-_generalization.0" general="Relationship"/>
- <generalization xmi:id="Association-_generalization.1" general="Classifier"/>
+ <generalization xmi:id="Association-_generalization.0" general="Classifier"/>
+ <generalization xmi:id="Association-_generalization.1" general="Relationship"/>
<ownedAttribute xmi:id="Association-endType" name="endType" visibility="public" type="Type" isOrdered="true" isReadOnly="true" isDerived="true" subsettedProperty="Relationship-relatedElement" association="A_endType_association">
<ownedComment xmi:id="Association-endType-_ownedComment.0" annotatedElement="Association-endType">
<body>References the classifiers that are used as types of the ends of the association.</body>
@@ -2884,7 +2869,7 @@ endif
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Association-navigableOwnedEnd-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Association-navigableOwnedEnd-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Association-ownedEnd" name="ownedEnd" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-feature A_redefinitionContext_redefinableElement-redefinableElement Association-memberEnd Namespace-ownedMember" association="A_ownedEnd_owningAssociation">
+ <ownedAttribute xmi:id="Association-ownedEnd" name="ownedEnd" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Association-memberEnd Classifier-feature A_redefinitionContext_redefinableElement-redefinableElement Namespace-ownedMember" association="A_ownedEnd_owningAssociation">
<ownedComment xmi:id="Association-ownedEnd-_ownedComment.0" annotatedElement="Association-ownedEnd">
<body>The ends that are owned by the association itself.</body>
</ownedComment>
@@ -2911,15 +2896,6 @@ endif
<ownedComment xmi:id="AssociationClass-_ownedComment.0" annotatedElement="AssociationClass">
<body>A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers.</body>
</ownedComment>
- <ownedRule xmi:id="AssociationClass-cannot_be_defined" name="cannot_be_defined" constrainedElement="AssociationClass">
- <ownedComment xmi:id="AssociationClass-cannot_be_defined-_ownedComment.0" annotatedElement="AssociationClass-cannot_be_defined">
- <body>An AssociationClass cannot be defined between itself and something else.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="AssociationClass-cannot_be_defined-_specification">
- <language>OCL</language>
- <body>self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="AssociationClass-disjoint_attributes_ends" name="disjoint_attributes_ends" constrainedElement="AssociationClass">
<ownedComment xmi:id="AssociationClass-disjoint_attributes_ends-_ownedComment.0" annotatedElement="AssociationClass-disjoint_attributes_ends">
<body>The owned attributes and owned ends of an AssociationClass are disjoint</body>
@@ -2929,6 +2905,15 @@ endif
<body>ownedAttribute->intersection(ownedEnd)->isEmpty()</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="AssociationClass-cannot_be_defined" name="cannot_be_defined" constrainedElement="AssociationClass">
+ <ownedComment xmi:id="AssociationClass-cannot_be_defined-_ownedComment.0" annotatedElement="AssociationClass-cannot_be_defined">
+ <body>An AssociationClass cannot be defined between itself and something else.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="AssociationClass-cannot_be_defined-_specification">
+ <language>OCL</language>
+ <body>self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="AssociationClass-_generalization.0" general="Class"/>
<generalization xmi:id="AssociationClass-_generalization.1" general="Association"/>
</packagedElement>
@@ -2939,38 +2924,38 @@ endif
<ownedComment xmi:id="Behavior-_ownedComment.1" annotatedElement="Behavior">
<body>A behavior owns zero or more parameter sets.</body>
</ownedComment>
- <ownedRule xmi:id="Behavior-most_one_behaviour" name="most_one_behaviour" constrainedElement="Behavior">
- <ownedComment xmi:id="Behavior-most_one_behaviour-_ownedComment.0" annotatedElement="Behavior-most_one_behaviour">
- <body>There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).</body>
+ <ownedRule xmi:id="Behavior-parameters_match" name="parameters_match" constrainedElement="Behavior">
+ <ownedComment xmi:id="Behavior-parameters_match-_ownedComment.0" annotatedElement="Behavior-parameters_match">
+ <body>The parameters of the behavior must match the parameters of the implemented behavioral feature.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-most_one_behaviour-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-parameters_match-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Behavior-must_realize" name="must_realize" constrainedElement="Behavior">
- <ownedComment xmi:id="Behavior-must_realize-_ownedComment.0" annotatedElement="Behavior-must_realize">
- <body>If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature.</body>
+ <ownedRule xmi:id="Behavior-feature_of_context_classifier" name="feature_of_context_classifier" constrainedElement="Behavior">
+ <ownedComment xmi:id="Behavior-feature_of_context_classifier-_ownedComment.0" annotatedElement="Behavior-feature_of_context_classifier">
+ <body>The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-must_realize-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-feature_of_context_classifier-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Behavior-parameters_match" name="parameters_match" constrainedElement="Behavior">
- <ownedComment xmi:id="Behavior-parameters_match-_ownedComment.0" annotatedElement="Behavior-parameters_match">
- <body>The parameters of the behavior must match the parameters of the implemented behavioral feature.</body>
+ <ownedRule xmi:id="Behavior-must_realize" name="must_realize" constrainedElement="Behavior">
+ <ownedComment xmi:id="Behavior-must_realize-_ownedComment.0" annotatedElement="Behavior-must_realize">
+ <body>If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior must realize the latest redefining behavioral feature.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-parameters_match-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-must_realize-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Behavior-feature_of_context_classifier" name="feature_of_context_classifier" constrainedElement="Behavior">
- <ownedComment xmi:id="Behavior-feature_of_context_classifier-_ownedComment.0" annotatedElement="Behavior-feature_of_context_classifier">
- <body>The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.</body>
+ <ownedRule xmi:id="Behavior-most_one_behaviour" name="most_one_behaviour" constrainedElement="Behavior">
+ <ownedComment xmi:id="Behavior-most_one_behaviour-_ownedComment.0" annotatedElement="Behavior-most_one_behaviour">
+ <body>There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature (as specification of the behavior).</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-feature_of_context_classifier-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Behavior-most_one_behaviour-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -3062,13 +3047,13 @@ endif
<body>A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.</body>
</ownedComment>
<ownedComment xmi:id="BehavioralFeature-_ownedComment.1" annotatedElement="BehavioralFeature">
- <body>A behavioral feature owns zero or more parameter sets.</body>
+ <body>A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.</body>
</ownedComment>
<ownedComment xmi:id="BehavioralFeature-_ownedComment.2" annotatedElement="BehavioralFeature">
- <body>A behavioral feature is implemented (realized) by a behavior. A behavioral feature specifies that a classifier will respond to a designated request by invoking its implementing method.</body>
+ <body>A behavioral feature owns zero or more parameter sets.</body>
</ownedComment>
- <generalization xmi:id="BehavioralFeature-_generalization.0" general="Feature"/>
- <generalization xmi:id="BehavioralFeature-_generalization.1" general="Namespace"/>
+ <generalization xmi:id="BehavioralFeature-_generalization.0" general="Namespace"/>
+ <generalization xmi:id="BehavioralFeature-_generalization.1" general="Feature"/>
<ownedAttribute xmi:id="BehavioralFeature-concurrency" name="concurrency" visibility="public" type="CallConcurrencyKind">
<ownedComment xmi:id="BehavioralFeature-concurrency-_ownedComment.0" annotatedElement="BehavioralFeature-concurrency">
<body>Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features.</body>
@@ -3176,20 +3161,20 @@ endif</body>
<ownedComment xmi:id="BroadcastSignalAction-_ownedComment.0" annotatedElement="BroadcastSignalAction">
<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="BroadcastSignalAction-number_and_order" name="number_and_order" constrainedElement="BroadcastSignalAction">
- <ownedComment xmi:id="BroadcastSignalAction-number_and_order-_ownedComment.0" annotatedElement="BroadcastSignalAction-number_and_order">
- <body>The number and order of argument pins must be the same as the number and order of attributes in the signal.</body>
+ <ownedRule xmi:id="BroadcastSignalAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="BroadcastSignalAction">
+ <ownedComment xmi:id="BroadcastSignalAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="BroadcastSignalAction-type_ordering_multiplicity">
+ <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="BroadcastSignalAction-number_and_order-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="BroadcastSignalAction-type_ordering_multiplicity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="BroadcastSignalAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="BroadcastSignalAction">
- <ownedComment xmi:id="BroadcastSignalAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="BroadcastSignalAction-type_ordering_multiplicity">
- <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.</body>
+ <ownedRule xmi:id="BroadcastSignalAction-number_and_order" name="number_and_order" constrainedElement="BroadcastSignalAction">
+ <ownedComment xmi:id="BroadcastSignalAction-number_and_order-_ownedComment.0" annotatedElement="BroadcastSignalAction-number_and_order">
+ <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="BroadcastSignalAction-type_ordering_multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="BroadcastSignalAction-number_and_order-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -3205,11 +3190,11 @@ endif</body>
<ownedComment xmi:id="CallAction-_ownedComment.0" annotatedElement="CallAction">
<body>CallAction is an abstract class for actions that invoke behavior and receive return values.</body>
</ownedComment>
- <ownedRule xmi:id="CallAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="CallAction">
- <ownedComment xmi:id="CallAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="CallAction-type_ordering_multiplicity">
- <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.</body>
+ <ownedRule xmi:id="CallAction-synchronous_call" name="synchronous_call" constrainedElement="CallAction">
+ <ownedComment xmi:id="CallAction-synchronous_call-_ownedComment.0" annotatedElement="CallAction-synchronous_call">
+ <body>Only synchronous call actions can have result pins.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallAction-type_ordering_multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallAction-synchronous_call-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -3223,11 +3208,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CallAction-synchronous_call" name="synchronous_call" constrainedElement="CallAction">
- <ownedComment xmi:id="CallAction-synchronous_call-_ownedComment.0" annotatedElement="CallAction-synchronous_call">
- <body>Only synchronous call actions can have result pins.</body>
+ <ownedRule xmi:id="CallAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="CallAction">
+ <ownedComment xmi:id="CallAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="CallAction-type_ordering_multiplicity">
+ <body>The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallAction-synchronous_call-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallAction-type_ordering_multiplicity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -3301,38 +3286,38 @@ endif</body>
<ownedComment xmi:id="CallOperationAction-_ownedComment.0" annotatedElement="CallOperationAction">
<body>A call operation action is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete.</body>
</ownedComment>
- <ownedRule xmi:id="CallOperationAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="CallOperationAction">
- <ownedComment xmi:id="CallOperationAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="CallOperationAction-type_ordering_multiplicity">
- <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.</body>
+ <ownedRule xmi:id="CallOperationAction-argument_pin_equal_parameter" name="argument_pin_equal_parameter" constrainedElement="CallOperationAction">
+ <ownedComment xmi:id="CallOperationAction-argument_pin_equal_parameter-_ownedComment.0" annotatedElement="CallOperationAction-argument_pin_equal_parameter">
+ <body>The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-type_ordering_multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-argument_pin_equal_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CallOperationAction-type_target_pin" name="type_target_pin" constrainedElement="CallOperationAction">
- <ownedComment xmi:id="CallOperationAction-type_target_pin-_ownedComment.0" annotatedElement="CallOperationAction-type_target_pin">
- <body>The type of the target pin must be the same as the type that owns the operation.</body>
+ <ownedRule xmi:id="CallOperationAction-result_pin_equal_parameter" name="result_pin_equal_parameter" constrainedElement="CallOperationAction">
+ <ownedComment xmi:id="CallOperationAction-result_pin_equal_parameter-_ownedComment.0" annotatedElement="CallOperationAction-result_pin_equal_parameter">
+ <body>The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-type_target_pin-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-result_pin_equal_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CallOperationAction-argument_pin_equal_parameter" name="argument_pin_equal_parameter" constrainedElement="CallOperationAction">
- <ownedComment xmi:id="CallOperationAction-argument_pin_equal_parameter-_ownedComment.0" annotatedElement="CallOperationAction-argument_pin_equal_parameter">
- <body>The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.</body>
+ <ownedRule xmi:id="CallOperationAction-type_target_pin" name="type_target_pin" constrainedElement="CallOperationAction">
+ <ownedComment xmi:id="CallOperationAction-type_target_pin-_ownedComment.0" annotatedElement="CallOperationAction-type_target_pin">
+ <body>The type of the target pin must be the same as the type that owns the operation.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-argument_pin_equal_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-type_target_pin-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CallOperationAction-result_pin_equal_parameter" name="result_pin_equal_parameter" constrainedElement="CallOperationAction">
- <ownedComment xmi:id="CallOperationAction-result_pin_equal_parameter-_ownedComment.0" annotatedElement="CallOperationAction-result_pin_equal_parameter">
- <body>The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.</body>
+ <ownedRule xmi:id="CallOperationAction-type_ordering_multiplicity" name="type_ordering_multiplicity" constrainedElement="CallOperationAction">
+ <ownedComment xmi:id="CallOperationAction-type_ordering_multiplicity-_ownedComment.0" annotatedElement="CallOperationAction-type_ordering_multiplicity">
+ <body>The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-result_pin_equal_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CallOperationAction-type_ordering_multiplicity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -3368,16 +3353,16 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Class" name="Class">
<ownedComment xmi:id="Class-_ownedComment.0" annotatedElement="Class">
- <body>A class describes a set of objects that share the same specifications of features, constraints, and semantics.</body>
+ <body>A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.</body>
</ownedComment>
<ownedComment xmi:id="Class-_ownedComment.1" annotatedElement="Class">
- <body>A class has the capability to have an internal structure and ports.</body>
+ <body>A class describes a set of objects that share the same specifications of features, constraints, and semantics.</body>
</ownedComment>
<ownedComment xmi:id="Class-_ownedComment.2" annotatedElement="Class">
- <body>Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.</body>
+ <body>A class has the capability to have an internal structure and ports.</body>
</ownedComment>
<ownedComment xmi:id="Class-_ownedComment.3" annotatedElement="Class">
- <body>A class may be designated as active (i.e., each of its instances having its own thread of control) or passive (i.e., each of its instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.</body>
+ <body>Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.</body>
</ownedComment>
<ownedRule xmi:id="Class-passive_class" name="passive_class" constrainedElement="Class">
<ownedComment xmi:id="Class-passive_class-_ownedComment.0" annotatedElement="Class-passive_class">
@@ -3388,8 +3373,8 @@ endif</body>
<body>not self.isActive implies self.ownedReception.isEmpty()</body>
</specification>
</ownedRule>
- <generalization xmi:id="Class-_generalization.0" general="BehavioredClassifier"/>
- <generalization xmi:id="Class-_generalization.1" general="EncapsulatedClassifier"/>
+ <generalization xmi:id="Class-_generalization.0" general="EncapsulatedClassifier"/>
+ <generalization xmi:id="Class-_generalization.1" general="BehavioredClassifier"/>
<ownedAttribute xmi:id="Class-extension" name="extension" visibility="public" type="Extension" isReadOnly="true" isDerived="true" association="A_extension_metaclass">
<ownedComment xmi:id="Class-extension-_ownedComment.0" annotatedElement="Class-extension">
<body>References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.</body>
@@ -3399,10 +3384,10 @@ endif</body>
</ownedAttribute>
<ownedAttribute xmi:id="Class-isAbstract" name="isAbstract" visibility="public" redefinedProperty="Classifier-isAbstract">
<ownedComment xmi:id="Class-isAbstract-_ownedComment.0" annotatedElement="Class-isAbstract">
- <body>True when a class is abstract.</body>
+ <body>If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.</body>
</ownedComment>
<ownedComment xmi:id="Class-isAbstract-_ownedComment.1" annotatedElement="Class-isAbstract">
- <body>If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships.</body>
+ <body>True when a class is abstract.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="Class-isAbstract-_defaultValue"/>
@@ -3421,7 +3406,7 @@ endif</body>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Class-nestedClassifier-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Class-nestedClassifier-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Class-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" redefinedProperty="StructuredClassifier-ownedAttribute" subsettedProperty="Classifier-attribute Namespace-ownedMember" association="A_ownedAttribute_class">
+ <ownedAttribute xmi:id="Class-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" redefinedProperty="StructuredClassifier-ownedAttribute" subsettedProperty="Namespace-ownedMember Classifier-attribute" association="A_ownedAttribute_class">
<ownedComment xmi:id="Class-ownedAttribute-_ownedComment.0" annotatedElement="Class-ownedAttribute">
<body>The attributes (i.e. the properties) owned by the class.</body>
</ownedComment>
@@ -3504,32 +3489,14 @@ endif</body>
<body>A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.</body>
</ownedComment>
<ownedComment xmi:id="Classifier-_ownedComment.1" annotatedElement="Classifier">
- <body>A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.</body>
+ <body>A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.</body>
</ownedComment>
<ownedComment xmi:id="Classifier-_ownedComment.2" annotatedElement="Classifier">
<body>Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.</body>
</ownedComment>
<ownedComment xmi:id="Classifier-_ownedComment.3" annotatedElement="Classifier">
- <body>A classifier has the capability to own use cases. Although the owning classifier typically represents the subject to which the owned use cases apply, this is not necessarily the case. In principle, the same use case can be applied to multiple subjects, as identified by the subject association role of a use case.</body>
+ <body>A classifier has the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the workings of the classifier.</body>
</ownedComment>
- <ownedRule xmi:id="Classifier-specialize_type" name="specialize_type" constrainedElement="Classifier">
- <ownedComment xmi:id="Classifier-specialize_type-_ownedComment.0" annotatedElement="Classifier-specialize_type">
- <body>A classifier may only specialize classifiers of a valid type.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-specialize_type-_specification">
- <language>OCL</language>
- <body>self.parents()->forAll(c | self.maySpecializeType(c))</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Classifier-maps_to_generalization_set" name="maps_to_generalization_set" constrainedElement="Classifier">
- <ownedComment xmi:id="Classifier-maps_to_generalization_set-_ownedComment.0" annotatedElement="Classifier-maps_to_generalization_set">
- <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-maps_to_generalization_set-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Classifier-non_final_parents" name="non_final_parents" constrainedElement="Classifier">
<ownedComment xmi:id="Classifier-non_final_parents-_ownedComment.0" annotatedElement="Classifier-non_final_parents">
<body>The parents of a classifier must be non-final.</body>
@@ -3548,10 +3515,28 @@ endif</body>
<body>not self.allParents()->includes(self)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Classifier-specialize_type" name="specialize_type" constrainedElement="Classifier">
+ <ownedComment xmi:id="Classifier-specialize_type-_ownedComment.0" annotatedElement="Classifier-specialize_type">
+ <body>A classifier may only specialize classifiers of a valid type.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-specialize_type-_specification">
+ <language>OCL</language>
+ <body>self.parents()->forAll(c | self.maySpecializeType(c))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Classifier-maps_to_generalization_set" name="maps_to_generalization_set" constrainedElement="Classifier">
+ <ownedComment xmi:id="Classifier-maps_to_generalization_set-_ownedComment.0" annotatedElement="Classifier-maps_to_generalization_set">
+ <body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances also be its subclasses.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-maps_to_generalization_set-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="Classifier-_generalization.0" general="Namespace"/>
<generalization xmi:id="Classifier-_generalization.1" general="Type"/>
- <generalization xmi:id="Classifier-_generalization.2" general="TemplateableElement"/>
- <generalization xmi:id="Classifier-_generalization.3" general="RedefinableElement"/>
+ <generalization xmi:id="Classifier-_generalization.2" general="RedefinableElement"/>
+ <generalization xmi:id="Classifier-_generalization.3" general="TemplateableElement"/>
<ownedAttribute xmi:id="Classifier-attribute" name="attribute" visibility="public" type="Property" isReadOnly="true" isDerived="true" isDerivedUnion="true" subsettedProperty="Classifier-feature A_redefinitionContext_redefinableElement-redefinableElement" association="A_attribute_classifier">
<ownedComment xmi:id="Classifier-attribute-_ownedComment.0" annotatedElement="Classifier-attribute">
<body>Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.</body>
@@ -3586,7 +3571,7 @@ endif</body>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Classifier-general-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Classifier-general-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Classifier-generalization" name="generalization" visibility="public" type="Generalization" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_generalization_specific">
+ <ownedAttribute xmi:id="Classifier-generalization" name="generalization" visibility="public" type="Generalization" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_generalization_specific">
<ownedComment xmi:id="Classifier-generalization-_ownedComment.0" annotatedElement="Classifier-generalization">
<body>Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.</body>
</ownedComment>
@@ -3750,10 +3735,10 @@ endif</body>
</ownedOperation>
<ownedOperation xmi:id="Classifier-inherit" name="inherit" visibility="public" bodyCondition="Classifier-inherit-spec" isQuery="true">
<ownedComment xmi:id="Classifier-inherit-_ownedComment.0" annotatedElement="Classifier-inherit">
- <body>The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.</body>
+ <body>The inherit operation is overridden to exclude redefined properties.</body>
</ownedComment>
<ownedComment xmi:id="Classifier-inherit-_ownedComment.1" annotatedElement="Classifier-inherit">
- <body>The inherit operation is overridden to exclude redefined properties.</body>
+ <body>The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.</body>
</ownedComment>
<ownedRule xmi:id="Classifier-inherit-spec" name="spec" constrainedElement="Classifier-inherit">
<specification xmi:type="uml:OpaqueExpression" xmi:id="Classifier-inherit-spec-_specification">
@@ -3890,6 +3875,15 @@ endif</body>
<ownedComment xmi:id="Clause-_ownedComment.0" annotatedElement="Clause">
<body>A clause is an element that represents a single branch of a conditional construct, including a test and a body section. The body section is executed only if (but not necessarily if) the test section evaluates true.</body>
</ownedComment>
+ <ownedRule xmi:id="Clause-test_and_body" name="test_and_body" constrainedElement="Clause">
+ <ownedComment xmi:id="Clause-test_and_body-_ownedComment.0" annotatedElement="Clause-test_and_body">
+ <body>The test and body parts must be disjoint.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Clause-test_and_body-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Clause-body_output_pins" name="body_output_pins" constrainedElement="Clause">
<ownedComment xmi:id="Clause-body_output_pins-_ownedComment.0" annotatedElement="Clause-body_output_pins">
<body>The bodyOutput pins are output pins on actions in the body of the clause.</body>
@@ -3908,15 +3902,6 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Clause-test_and_body" name="test_and_body" constrainedElement="Clause">
- <ownedComment xmi:id="Clause-test_and_body-_ownedComment.0" annotatedElement="Clause-test_and_body">
- <body>The test and body parts must be disjoint.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Clause-test_and_body-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<generalization xmi:id="Clause-_generalization.0" general="Element"/>
<ownedAttribute xmi:id="Clause-body" name="body" visibility="public" type="ExecutableNode" association="A_body_clause">
<ownedComment xmi:id="Clause-body-_ownedComment.0" annotatedElement="Clause-body">
@@ -3996,15 +3981,6 @@ endif</body>
<ownedComment xmi:id="ClearStructuralFeatureAction-_ownedComment.0" annotatedElement="ClearStructuralFeatureAction">
<body>A clear structural feature action is a structural feature action that removes all values of a structural feature.</body>
</ownedComment>
- <ownedRule xmi:id="ClearStructuralFeatureAction-type_of_result" name="type_of_result" constrainedElement="ClearStructuralFeatureAction">
- <ownedComment xmi:id="ClearStructuralFeatureAction-type_of_result-_ownedComment.0" annotatedElement="ClearStructuralFeatureAction-type_of_result">
- <body>The type of the result output pin is the same as the type of the inherited object input pin.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ClearStructuralFeatureAction-type_of_result-_specification">
- <language>OCL</language>
- <body>result->notEmpty() implies self.result.type = self.object.type</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ClearStructuralFeatureAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="ClearStructuralFeatureAction">
<ownedComment xmi:id="ClearStructuralFeatureAction-multiplicity_of_result-_ownedComment.0" annotatedElement="ClearStructuralFeatureAction-multiplicity_of_result">
<body>The multiplicity of the result output pin must be 1..1.</body>
@@ -4014,6 +3990,15 @@ endif</body>
<body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ClearStructuralFeatureAction-type_of_result" name="type_of_result" constrainedElement="ClearStructuralFeatureAction">
+ <ownedComment xmi:id="ClearStructuralFeatureAction-type_of_result-_ownedComment.0" annotatedElement="ClearStructuralFeatureAction-type_of_result">
+ <body>The type of the result output pin is the same as the type of the inherited object input pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ClearStructuralFeatureAction-type_of_result-_specification">
+ <language>OCL</language>
+ <body>result->notEmpty() implies self.result.type = self.object.type</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ClearStructuralFeatureAction-_generalization.0" general="StructuralFeatureAction"/>
<ownedAttribute xmi:id="ClearStructuralFeatureAction-result" name="result" visibility="public" type="OutputPin" aggregation="composite" subsettedProperty="Action-output" association="A_result_clearStructuralFeatureAction">
<ownedComment xmi:id="ClearStructuralFeatureAction-result-_ownedComment.0" annotatedElement="ClearStructuralFeatureAction-result">
@@ -4046,11 +4031,11 @@ endif</body>
<ownedComment xmi:id="CollaborationUse-_ownedComment.0" annotatedElement="CollaborationUse">
<body>A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.</body>
</ownedComment>
- <ownedRule xmi:id="CollaborationUse-client_elements" name="client_elements" constrainedElement="CollaborationUse">
- <ownedComment xmi:id="CollaborationUse-client_elements-_ownedComment.0" annotatedElement="CollaborationUse-client_elements">
- <body>All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.</body>
+ <ownedRule xmi:id="CollaborationUse-connectors" name="connectors" constrainedElement="CollaborationUse">
+ <ownedComment xmi:id="CollaborationUse-connectors-_ownedComment.0" annotatedElement="CollaborationUse-connectors">
+ <body>The connectors in the classifier connect according to the connectors in the collaboration</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CollaborationUse-client_elements-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CollaborationUse-connectors-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4064,11 +4049,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CollaborationUse-connectors" name="connectors" constrainedElement="CollaborationUse">
- <ownedComment xmi:id="CollaborationUse-connectors-_ownedComment.0" annotatedElement="CollaborationUse-connectors">
- <body>The connectors in the classifier connect according to the connectors in the collaboration</body>
+ <ownedRule xmi:id="CollaborationUse-client_elements" name="client_elements" constrainedElement="CollaborationUse">
+ <ownedComment xmi:id="CollaborationUse-client_elements-_ownedComment.0" annotatedElement="CollaborationUse-client_elements">
+ <body>All the client elements of a roleBinding are in one classifier and all supplier elements of a roleBinding are in one collaboration and they are compatible.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CollaborationUse-connectors-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CollaborationUse-client_elements-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4091,20 +4076,20 @@ endif</body>
<ownedComment xmi:id="CombinedFragment-_ownedComment.0" annotatedElement="CombinedFragment">
<body>A combined fragment defines an expression of interaction fragments. A combined fragment is defined by an interaction operator and corresponding interaction operands. Through the use of combined fragments the user will be able to describe a number of traces in a compact and concise manner.</body>
</ownedComment>
- <ownedRule xmi:id="CombinedFragment-minint_and_maxint" name="minint_and_maxint" constrainedElement="CombinedFragment">
- <ownedComment xmi:id="CombinedFragment-minint_and_maxint-_ownedComment.0" annotatedElement="CombinedFragment-minint_and_maxint">
- <body>The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.</body>
+ <ownedRule xmi:id="CombinedFragment-break" name="break" constrainedElement="CombinedFragment">
+ <ownedComment xmi:id="CombinedFragment-break-_ownedComment.0" annotatedElement="CombinedFragment-break">
+ <body>If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-minint_and_maxint-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-break-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CombinedFragment-break" name="break" constrainedElement="CombinedFragment">
- <ownedComment xmi:id="CombinedFragment-break-_ownedComment.0" annotatedElement="CombinedFragment-break">
- <body>If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.</body>
+ <ownedRule xmi:id="CombinedFragment-opt_loop_break_neg" name="opt_loop_break_neg" constrainedElement="CombinedFragment">
+ <ownedComment xmi:id="CombinedFragment-opt_loop_break_neg-_ownedComment.0" annotatedElement="CombinedFragment-opt_loop_break_neg">
+ <body>If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-break-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-opt_loop_break_neg-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4118,11 +4103,11 @@ endif</body>
<body>((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CombinedFragment-opt_loop_break_neg" name="opt_loop_break_neg" constrainedElement="CombinedFragment">
- <ownedComment xmi:id="CombinedFragment-opt_loop_break_neg-_ownedComment.0" annotatedElement="CombinedFragment-opt_loop_break_neg">
- <body>If the interactionOperator is opt, loop, break, assert or neg, there must be exactly one operand.</body>
+ <ownedRule xmi:id="CombinedFragment-minint_and_maxint" name="minint_and_maxint" constrainedElement="CombinedFragment">
+ <ownedComment xmi:id="CombinedFragment-minint_and_maxint-_ownedComment.0" annotatedElement="CombinedFragment-minint_and_maxint">
+ <body>The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-opt_loop_break_neg-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CombinedFragment-minint_and_maxint-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4185,20 +4170,11 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Component" name="Component">
<ownedComment xmi:id="Component-_ownedComment.0" annotatedElement="Component">
- <body>A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.</body>
+ <body>In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.</body>
</ownedComment>
<ownedComment xmi:id="Component-_ownedComment.1" annotatedElement="Component">
- <body>In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.</body>
+ <body>A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.</body>
</ownedComment>
- <ownedRule xmi:id="Component-no_nested_classifiers" name="no_nested_classifiers" constrainedElement="Component">
- <ownedComment xmi:id="Component-no_nested_classifiers-_ownedComment.0" annotatedElement="Component-no_nested_classifiers">
- <body>A component cannot nest classifiers.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Component-no_nested_classifiers-_specification">
- <language>OCL</language>
- <body>self.nestedClassifier->isEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Component-no_packaged_elements" name="no_packaged_elements" constrainedElement="Component">
<ownedComment xmi:id="Component-no_packaged_elements-_ownedComment.0" annotatedElement="Component-no_packaged_elements">
<body>component nested in a Class cannot have any packaged elements.</body>
@@ -4208,6 +4184,15 @@ endif</body>
<body>(not self.class->isEmpty()) implies self.packagedElement->isEmpty()</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Component-no_nested_classifiers" name="no_nested_classifiers" constrainedElement="Component">
+ <ownedComment xmi:id="Component-no_nested_classifiers-_ownedComment.0" annotatedElement="Component-no_nested_classifiers">
+ <body>A component cannot nest classifiers.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Component-no_nested_classifiers-_specification">
+ <language>OCL</language>
+ <body>self.nestedClassifier->isEmpty()</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="Component-_generalization.0" general="Class"/>
<ownedAttribute xmi:id="Component-isIndirectlyInstantiated" name="isIndirectlyInstantiated" visibility="public">
<ownedComment xmi:id="Component-isIndirectlyInstantiated-_ownedComment.0" annotatedElement="Component-isIndirectlyInstantiated">
@@ -4230,7 +4215,7 @@ endif</body>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Component-provided-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Component-provided-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Component-realization" name="realization" visibility="public" type="ComponentRealization" aggregation="composite" subsettedProperty="Element-ownedElement A_supplier_supplierDependency-supplierDependency" association="A_realization_abstraction_component">
+ <ownedAttribute xmi:id="Component-realization" name="realization" visibility="public" type="ComponentRealization" aggregation="composite" subsettedProperty="A_supplier_supplierDependency-supplierDependency Element-ownedElement" association="A_realization_abstraction_component">
<ownedComment xmi:id="Component-realization-_ownedComment.0" annotatedElement="Component-realization">
<body>The set of Realizations owned by the Component. Realizations reference the Classifiers of which the Component is an abstraction; i.e., that realize its behavior.</body>
</ownedComment>
@@ -4349,56 +4334,56 @@ collect(dependency|dependency.supplier)</body>
<ownedComment xmi:id="ConditionalNode-_ownedComment.0" annotatedElement="ConditionalNode">
<body>A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.</body>
</ownedComment>
- <ownedRule xmi:id="ConditionalNode-result_no_incoming" name="result_no_incoming" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-result_no_incoming-_ownedComment.0" annotatedElement="ConditionalNode-result_no_incoming">
- <body>The result output pins have no incoming edges.</body>
+ <ownedRule xmi:id="ConditionalNode-executable_nodes" name="executable_nodes" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-executable_nodes-_ownedComment.0" annotatedElement="ConditionalNode-executable_nodes">
+ <body>The union of the ExecutabledNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-result_no_incoming-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-executable_nodes-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConditionalNode-no_input_pins" name="no_input_pins" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-no_input_pins-_ownedComment.0" annotatedElement="ConditionalNode-no_input_pins">
- <body>A conditional node has no input pins.</body>
+ <ownedRule xmi:id="ConditionalNode-clause_no_predecessor" name="clause_no_predecessor" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-clause_no_predecessor-_ownedComment.0" annotatedElement="ConditionalNode-clause_no_predecessor">
+ <body>No two clauses within a ConditionalNode maybe predecessor clauses of each other, either directly or indirectly.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-no_input_pins-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-clause_no_predecessor-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConditionalNode-one_clause_with_executable_node" name="one_clause_with_executable_node" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-one_clause_with_executable_node-_ownedComment.0" annotatedElement="ConditionalNode-one_clause_with_executable_node">
- <body>No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.</body>
+ <ownedRule xmi:id="ConditionalNode-matching_output_pins" name="matching_output_pins" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-matching_output_pins-_ownedComment.0" annotatedElement="ConditionalNode-matching_output_pins">
+ <body>Each clause of a conditional node must have the same number of bodyOutput pins as the conditional node has result output pins, and each clause bodyOutput pin must be compatible with the corresponding result pin (by positional order) in type, multiplicity, ordering and uniqueness.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-one_clause_with_executable_node-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-matching_output_pins-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConditionalNode-matching_output_pins" name="matching_output_pins" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-matching_output_pins-_ownedComment.0" annotatedElement="ConditionalNode-matching_output_pins">
- <body>Each clause of a conditional node must have the same number of bodyOutput pins as the conditional node has result output pins, and each clause bodyOutput pin must be compatible with the corresponding result pin (by positional order) in type, multiplicity, ordering and uniqueness.</body>
+ <ownedRule xmi:id="ConditionalNode-one_clause_with_executable_node" name="one_clause_with_executable_node" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-one_clause_with_executable_node-_ownedComment.0" annotatedElement="ConditionalNode-one_clause_with_executable_node">
+ <body>No ExecutableNode may appear in the test or body part of more than one clause of a conditional node.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-matching_output_pins-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-one_clause_with_executable_node-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConditionalNode-executable_nodes" name="executable_nodes" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-executable_nodes-_ownedComment.0" annotatedElement="ConditionalNode-executable_nodes">
- <body>The union of the ExecutabledNodes in the test and body parts of all clauses must be the same as the subset of nodes contained in the ConditionalNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
+ <ownedRule xmi:id="ConditionalNode-result_no_incoming" name="result_no_incoming" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-result_no_incoming-_ownedComment.0" annotatedElement="ConditionalNode-result_no_incoming">
+ <body>The result output pins have no incoming edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-executable_nodes-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-result_no_incoming-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConditionalNode-clause_no_predecessor" name="clause_no_predecessor" constrainedElement="ConditionalNode">
- <ownedComment xmi:id="ConditionalNode-clause_no_predecessor-_ownedComment.0" annotatedElement="ConditionalNode-clause_no_predecessor">
- <body>No two clauses within a ConditionalNode maybe predecessor clauses of each other, either directly or indirectly.</body>
+ <ownedRule xmi:id="ConditionalNode-no_input_pins" name="no_input_pins" constrainedElement="ConditionalNode">
+ <ownedComment xmi:id="ConditionalNode-no_input_pins-_ownedComment.0" annotatedElement="ConditionalNode-no_input_pins">
+ <body>A conditional node has no input pins.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-clause_no_predecessor-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConditionalNode-no_input_pins-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4485,15 +4470,6 @@ collect(dependency|dependency.supplier)</body>
<ownedComment xmi:id="ConnectionPointReference-_ownedComment.0" annotatedElement="ConnectionPointReference">
<body>A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state.</body>
</ownedComment>
- <ownedRule xmi:id="ConnectionPointReference-exit_pseudostates" name="exit_pseudostates" constrainedElement="ConnectionPointReference">
- <ownedComment xmi:id="ConnectionPointReference-exit_pseudostates-_ownedComment.0" annotatedElement="ConnectionPointReference-exit_pseudostates">
- <body>The exit Pseudostates must be Pseudostates with kind exitPoint.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectionPointReference-exit_pseudostates-_specification">
- <language>OCL</language>
- <body>exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ConnectionPointReference-entry_pseudostates" name="entry_pseudostates" constrainedElement="ConnectionPointReference">
<ownedComment xmi:id="ConnectionPointReference-entry_pseudostates-_ownedComment.0" annotatedElement="ConnectionPointReference-entry_pseudostates">
<body>The entry Pseudostates must be Pseudostates with kind entryPoint.</body>
@@ -4503,6 +4479,15 @@ collect(dependency|dependency.supplier)</body>
<body>entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ConnectionPointReference-exit_pseudostates" name="exit_pseudostates" constrainedElement="ConnectionPointReference">
+ <ownedComment xmi:id="ConnectionPointReference-exit_pseudostates-_ownedComment.0" annotatedElement="ConnectionPointReference-exit_pseudostates">
+ <body>The exit Pseudostates must be Pseudostates with kind exitPoint.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectionPointReference-exit_pseudostates-_specification">
+ <language>OCL</language>
+ <body>exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ConnectionPointReference-_generalization.0" general="Vertex"/>
<ownedAttribute xmi:id="ConnectionPointReference-entry" name="entry" visibility="public" type="Pseudostate" association="A_entry_connectionPointReference">
<ownedComment xmi:id="ConnectionPointReference-entry-_ownedComment.0" annotatedElement="ConnectionPointReference-entry">
@@ -4532,11 +4517,11 @@ collect(dependency|dependency.supplier)</body>
<ownedComment xmi:id="Connector-_ownedComment.1" annotatedElement="Connector">
<body>Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only.</body>
</ownedComment>
- <ownedRule xmi:id="Connector-types" name="types" constrainedElement="Connector">
- <ownedComment xmi:id="Connector-types-_ownedComment.0" annotatedElement="Connector-types">
- <body>The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.</body>
+ <ownedRule xmi:id="Connector-compatible" name="compatible" constrainedElement="Connector">
+ <ownedComment xmi:id="Connector-compatible-_ownedComment.0" annotatedElement="Connector-compatible">
+ <body>The connectable elements attached to the ends of a connector must be compatible.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Connector-types-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Connector-compatible-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4559,11 +4544,11 @@ collect(dependency|dependency.supplier)</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Connector-compatible" name="compatible" constrainedElement="Connector">
- <ownedComment xmi:id="Connector-compatible-_ownedComment.0" annotatedElement="Connector-compatible">
- <body>The connectable elements attached to the ends of a connector must be compatible.</body>
+ <ownedRule xmi:id="Connector-types" name="types" constrainedElement="Connector">
+ <ownedComment xmi:id="Connector-types-_ownedComment.0" annotatedElement="Connector-types">
+ <body>The types of the connectable elements that the ends of a connector are attached to must conform to the types of the association ends of the association that types the connector, if any.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Connector-compatible-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Connector-types-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4634,11 +4619,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConnectorEnd-part_with_port_empty" name="part_with_port_empty" constrainedElement="ConnectorEnd">
- <ownedComment xmi:id="ConnectorEnd-part_with_port_empty-_ownedComment.0" annotatedElement="ConnectorEnd-part_with_port_empty">
- <body>If a connector end is attached to a port of the containing classifier, partWithPort will be empty.</body>
+ <ownedRule xmi:id="ConnectorEnd-self_part_with_port" name="self_part_with_port" constrainedElement="ConnectorEnd">
+ <ownedComment xmi:id="ConnectorEnd-self_part_with_port-_ownedComment.0" annotatedElement="ConnectorEnd-self_part_with_port">
+ <body>The property held in self.partWithPort must not be a Port.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectorEnd-part_with_port_empty-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectorEnd-self_part_with_port-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4652,11 +4637,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ConnectorEnd-self_part_with_port" name="self_part_with_port" constrainedElement="ConnectorEnd">
- <ownedComment xmi:id="ConnectorEnd-self_part_with_port-_ownedComment.0" annotatedElement="ConnectorEnd-self_part_with_port">
- <body>The property held in self.partWithPort must not be a Port.</body>
+ <ownedRule xmi:id="ConnectorEnd-part_with_port_empty" name="part_with_port_empty" constrainedElement="ConnectorEnd">
+ <ownedComment xmi:id="ConnectorEnd-part_with_port_empty-_ownedComment.0" annotatedElement="ConnectorEnd-part_with_port_empty">
+ <body>If a connector end is attached to a port of the containing classifier, partWithPort will be empty.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectorEnd-self_part_with_port-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConnectorEnd-part_with_port_empty-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4698,15 +4683,6 @@ endif</body>
<ownedComment xmi:id="ConsiderIgnoreFragment-_ownedComment.0" annotatedElement="ConsiderIgnoreFragment">
<body>A consider ignore fragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified.</body>
</ownedComment>
- <ownedRule xmi:id="ConsiderIgnoreFragment-consider_or_ignore" name="consider_or_ignore" constrainedElement="ConsiderIgnoreFragment">
- <ownedComment xmi:id="ConsiderIgnoreFragment-consider_or_ignore-_ownedComment.0" annotatedElement="ConsiderIgnoreFragment-consider_or_ignore">
- <body>The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ConsiderIgnoreFragment-consider_or_ignore-_specification">
- <language>OCL</language>
- <body>(interactionOperator = #consider) or (interactionOperator = #ignore)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ConsiderIgnoreFragment-type" name="type" constrainedElement="ConsiderIgnoreFragment">
<ownedComment xmi:id="ConsiderIgnoreFragment-type-_ownedComment.0" annotatedElement="ConsiderIgnoreFragment-type">
<body>The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).</body>
@@ -4716,6 +4692,15 @@ endif</body>
<body>message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ConsiderIgnoreFragment-consider_or_ignore" name="consider_or_ignore" constrainedElement="ConsiderIgnoreFragment">
+ <ownedComment xmi:id="ConsiderIgnoreFragment-consider_or_ignore-_ownedComment.0" annotatedElement="ConsiderIgnoreFragment-consider_or_ignore">
+ <body>The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ConsiderIgnoreFragment-consider_or_ignore-_specification">
+ <language>OCL</language>
+ <body>(interactionOperator = #consider) or (interactionOperator = #ignore)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ConsiderIgnoreFragment-_generalization.0" general="CombinedFragment"/>
<ownedAttribute xmi:id="ConsiderIgnoreFragment-message" name="message" visibility="public" type="NamedElement" association="A_message_considerIgnoreFragment">
<ownedComment xmi:id="ConsiderIgnoreFragment-message-_ownedComment.0" annotatedElement="ConsiderIgnoreFragment-message">
@@ -4729,13 +4714,13 @@ endif</body>
<ownedComment xmi:id="Constraint-_ownedComment.0" annotatedElement="Constraint">
<body>A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.</body>
</ownedComment>
- <ownedRule xmi:id="Constraint-boolean_value" name="boolean_value" constrainedElement="Constraint">
- <ownedComment xmi:id="Constraint-boolean_value-_ownedComment.0" annotatedElement="Constraint-boolean_value">
- <body>The value specification for a constraint must evaluate to a Boolean value.</body>
+ <ownedRule xmi:id="Constraint-not_apply_to_self" name="not_apply_to_self" constrainedElement="Constraint">
+ <ownedComment xmi:id="Constraint-not_apply_to_self-_ownedComment.0" annotatedElement="Constraint-not_apply_to_self">
+ <body>A constraint cannot be applied to itself.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Constraint-boolean_value-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Constraint-not_apply_to_self-_specification">
<language>OCL</language>
- <body>true</body>
+ <body>not constrainedElement->includes(self)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Constraint-no_side_effects" name="no_side_effects" constrainedElement="Constraint">
@@ -4747,13 +4732,13 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Constraint-not_apply_to_self" name="not_apply_to_self" constrainedElement="Constraint">
- <ownedComment xmi:id="Constraint-not_apply_to_self-_ownedComment.0" annotatedElement="Constraint-not_apply_to_self">
- <body>A constraint cannot be applied to itself.</body>
+ <ownedRule xmi:id="Constraint-boolean_value" name="boolean_value" constrainedElement="Constraint">
+ <ownedComment xmi:id="Constraint-boolean_value-_ownedComment.0" annotatedElement="Constraint-boolean_value">
+ <body>The value specification for a constraint must evaluate to a Boolean value.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Constraint-not_apply_to_self-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Constraint-boolean_value-_specification">
<language>OCL</language>
- <body>not constrainedElement->includes(self)</body>
+ <body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Constraint-value_specification_boolean" name="value_specification_boolean" constrainedElement="Constraint">
@@ -4789,20 +4774,20 @@ endif</body>
<ownedComment xmi:id="Continuation-_ownedComment.0" annotatedElement="Continuation">
<body>A continuation is a syntactic way to define continuations of different branches of an alternative combined fragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control.</body>
</ownedComment>
- <ownedRule xmi:id="Continuation-first_or_last_interaction_fragment" name="first_or_last_interaction_fragment" constrainedElement="Continuation">
- <ownedComment xmi:id="Continuation-first_or_last_interaction_fragment-_ownedComment.0" annotatedElement="Continuation-first_or_last_interaction_fragment">
- <body>Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.</body>
+ <ownedRule xmi:id="Continuation-same_name" name="same_name" constrainedElement="Continuation">
+ <ownedComment xmi:id="Continuation-same_name-_ownedComment.0" annotatedElement="Continuation-same_name">
+ <body>Continuations with the same name may only cover the same set of Lifelines (within one Classifier).</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Continuation-first_or_last_interaction_fragment-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Continuation-same_name-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Continuation-same_name" name="same_name" constrainedElement="Continuation">
- <ownedComment xmi:id="Continuation-same_name-_ownedComment.0" annotatedElement="Continuation-same_name">
- <body>Continuations with the same name may only cover the same set of Lifelines (within one Classifier).</body>
+ <ownedRule xmi:id="Continuation-first_or_last_interaction_fragment" name="first_or_last_interaction_fragment" constrainedElement="Continuation">
+ <ownedComment xmi:id="Continuation-first_or_last_interaction_fragment-_ownedComment.0" annotatedElement="Continuation-first_or_last_interaction_fragment">
+ <body>Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Continuation-same_name-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Continuation-first_or_last_interaction_fragment-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -4872,13 +4857,13 @@ endif</body>
<ownedComment xmi:id="CreateLinkObjectAction-_ownedComment.0" annotatedElement="CreateLinkObjectAction">
<body>A create link object action creates a link object.</body>
</ownedComment>
- <ownedRule xmi:id="CreateLinkObjectAction-multiplicity" name="multiplicity" constrainedElement="CreateLinkObjectAction">
- <ownedComment xmi:id="CreateLinkObjectAction-multiplicity-_ownedComment.0" annotatedElement="CreateLinkObjectAction-multiplicity">
- <body>The multiplicity of the output pin is 1..1.</body>
+ <ownedRule xmi:id="CreateLinkObjectAction-association_class" name="association_class" constrainedElement="CreateLinkObjectAction">
+ <ownedComment xmi:id="CreateLinkObjectAction-association_class-_ownedComment.0" annotatedElement="CreateLinkObjectAction-association_class">
+ <body>The association must be an association class.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateLinkObjectAction-multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateLinkObjectAction-association_class-_specification">
<language>OCL</language>
- <body>self.result.multiplicity.is(1,1)</body>
+ <body>self.association().oclIsKindOf(Class)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="CreateLinkObjectAction-type_of_result" name="type_of_result" constrainedElement="CreateLinkObjectAction">
@@ -4890,13 +4875,13 @@ endif</body>
<body>self.result.type = self.association()</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="CreateLinkObjectAction-association_class" name="association_class" constrainedElement="CreateLinkObjectAction">
- <ownedComment xmi:id="CreateLinkObjectAction-association_class-_ownedComment.0" annotatedElement="CreateLinkObjectAction-association_class">
- <body>The association must be an association class.</body>
+ <ownedRule xmi:id="CreateLinkObjectAction-multiplicity" name="multiplicity" constrainedElement="CreateLinkObjectAction">
+ <ownedComment xmi:id="CreateLinkObjectAction-multiplicity-_ownedComment.0" annotatedElement="CreateLinkObjectAction-multiplicity">
+ <body>The multiplicity of the output pin is 1..1.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateLinkObjectAction-association_class-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateLinkObjectAction-multiplicity-_specification">
<language>OCL</language>
- <body>self.association().oclIsKindOf(Class)</body>
+ <body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="CreateLinkObjectAction-_generalization.0" general="CreateLinkAction"/>
@@ -4910,24 +4895,6 @@ endif</body>
<ownedComment xmi:id="CreateObjectAction-_ownedComment.0" annotatedElement="CreateObjectAction">
<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="CreateObjectAction-classifier_not_abstract" name="classifier_not_abstract" constrainedElement="CreateObjectAction">
- <ownedComment xmi:id="CreateObjectAction-classifier_not_abstract-_ownedComment.0" annotatedElement="CreateObjectAction-classifier_not_abstract">
- <body>The classifier cannot be abstract.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateObjectAction-classifier_not_abstract-_specification">
- <language>OCL</language>
- <body>not (self.classifier.isAbstract = #true)</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="CreateObjectAction-multiplicity" name="multiplicity" constrainedElement="CreateObjectAction">
- <ownedComment xmi:id="CreateObjectAction-multiplicity-_ownedComment.0" annotatedElement="CreateObjectAction-multiplicity">
- <body>The multiplicity of the output pin is 1..1.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateObjectAction-multiplicity-_specification">
- <language>OCL</language>
- <body>self.result.multiplicity.is(1,1)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="CreateObjectAction-classifier_not_association_class" name="classifier_not_association_class" constrainedElement="CreateObjectAction">
<ownedComment xmi:id="CreateObjectAction-classifier_not_association_class-_ownedComment.0" annotatedElement="CreateObjectAction-classifier_not_association_class">
<body>The classifier cannot be an association class</body>
@@ -4937,6 +4904,15 @@ endif</body>
<body>not self.classifier.oclIsKindOf(AssociationClass)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="CreateObjectAction-classifier_not_abstract" name="classifier_not_abstract" constrainedElement="CreateObjectAction">
+ <ownedComment xmi:id="CreateObjectAction-classifier_not_abstract-_ownedComment.0" annotatedElement="CreateObjectAction-classifier_not_abstract">
+ <body>The classifier cannot be abstract.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateObjectAction-classifier_not_abstract-_specification">
+ <language>OCL</language>
+ <body>not (self.classifier.isAbstract = #true)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="CreateObjectAction-same_type" name="same_type" constrainedElement="CreateObjectAction">
<ownedComment xmi:id="CreateObjectAction-same_type-_ownedComment.0" annotatedElement="CreateObjectAction-same_type">
<body>The type of the result pin must be the same as the classifier of the action.</body>
@@ -4946,6 +4922,15 @@ endif</body>
<body>self.result.type = self.classifier</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="CreateObjectAction-multiplicity" name="multiplicity" constrainedElement="CreateObjectAction">
+ <ownedComment xmi:id="CreateObjectAction-multiplicity-_ownedComment.0" annotatedElement="CreateObjectAction-multiplicity">
+ <body>The multiplicity of the output pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="CreateObjectAction-multiplicity-_specification">
+ <language>OCL</language>
+ <body>self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="CreateObjectAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="CreateObjectAction-classifier" name="classifier" visibility="public" type="Classifier" association="A_classifier_createObjectAction">
<ownedComment xmi:id="CreateObjectAction-classifier-_ownedComment.0" annotatedElement="CreateObjectAction-classifier">
@@ -4969,7 +4954,7 @@ endif</body>
<body>A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types.</body>
</ownedComment>
<generalization xmi:id="DataType-_generalization.0" general="Classifier"/>
- <ownedAttribute xmi:id="DataType-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute Namespace-ownedMember" association="A_ownedAttribute_datatype">
+ <ownedAttribute xmi:id="DataType-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Namespace-ownedMember Classifier-attribute" association="A_ownedAttribute_datatype">
<ownedComment xmi:id="DataType-ownedAttribute-_ownedComment.0" annotatedElement="DataType-ownedAttribute">
<body>The Attributes owned by the DataType.</body>
</ownedComment>
@@ -5007,74 +4992,74 @@ endif</body>
<ownedComment xmi:id="DecisionNode-_ownedComment.0" annotatedElement="DecisionNode">
<body>A decision node is a control node that chooses between outgoing flows.</body>
</ownedComment>
- <ownedRule xmi:id="DecisionNode-zero_input_parameters" name="zero_input_parameters" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-zero_input_parameters-_ownedComment.0" annotatedElement="DecisionNode-zero_input_parameters">
- <body>If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.</body>
+ <ownedRule xmi:id="DecisionNode-parameters" name="parameters" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-parameters-_ownedComment.0" annotatedElement="DecisionNode-parameters">
+ <body>A decision input behavior has no output parameters, no in-out parameters and one return parameter.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-zero_input_parameters-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-parameters-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-edges" name="edges" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-edges-_ownedComment.0" annotatedElement="DecisionNode-edges">
- <body>The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.</body>
+ <ownedRule xmi:id="DecisionNode-incoming_object_one_input_parameter" name="incoming_object_one_input_parameter" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-incoming_object_one_input_parameter-_ownedComment.0" annotatedElement="DecisionNode-incoming_object_one_input_parameter">
+ <body>If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_object_one_input_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-decision_input_flow_incoming" name="decision_input_flow_incoming" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-decision_input_flow_incoming-_ownedComment.0" annotatedElement="DecisionNode-decision_input_flow_incoming">
- <body>The decisionInputFlow of a decision node must be an incoming edge of the decision node.</body>
+ <ownedRule xmi:id="DecisionNode-incoming_outgoing_edges" name="incoming_outgoing_edges" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-incoming_outgoing_edges-_ownedComment.0" annotatedElement="DecisionNode-incoming_outgoing_edges">
+ <body>A decision node has one or two incoming edges and at least one outgoing edge.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-decision_input_flow_incoming-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_outgoing_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-two_input_parameters" name="two_input_parameters" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-two_input_parameters-_ownedComment.0" annotatedElement="DecisionNode-two_input_parameters">
- <body>If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
+ <ownedRule xmi:id="DecisionNode-incoming_control_one_input_parameter" name="incoming_control_one_input_parameter" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-incoming_control_one_input_parameter-_ownedComment.0" annotatedElement="DecisionNode-incoming_control_one_input_parameter">
+ <body>If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-two_input_parameters-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_control_one_input_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-incoming_outgoing_edges" name="incoming_outgoing_edges" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-incoming_outgoing_edges-_ownedComment.0" annotatedElement="DecisionNode-incoming_outgoing_edges">
- <body>A decision node has one or two incoming edges and at least one outgoing edge.</body>
+ <ownedRule xmi:id="DecisionNode-two_input_parameters" name="two_input_parameters" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-two_input_parameters-_ownedComment.0" annotatedElement="DecisionNode-two_input_parameters">
+ <body>If the decision node has a decision input flow and an second incoming object flow, then a decision input behavior has two input parameters, the first of which has a type that is the same as or a supertype of the type of the type of object tokens offered on the nondecision input flow and the second of which has a type that is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_outgoing_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-two_input_parameters-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-incoming_control_one_input_parameter" name="incoming_control_one_input_parameter" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-incoming_control_one_input_parameter-_ownedComment.0" annotatedElement="DecisionNode-incoming_control_one_input_parameter">
- <body>If the decision node has a decision input flow and an incoming control flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the decision input flow.</body>
+ <ownedRule xmi:id="DecisionNode-decision_input_flow_incoming" name="decision_input_flow_incoming" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-decision_input_flow_incoming-_ownedComment.0" annotatedElement="DecisionNode-decision_input_flow_incoming">
+ <body>The decisionInputFlow of a decision node must be an incoming edge of the decision node.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_control_one_input_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-decision_input_flow_incoming-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-parameters" name="parameters" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-parameters-_ownedComment.0" annotatedElement="DecisionNode-parameters">
- <body>A decision input behavior has no output parameters, no in-out parameters and one return parameter.</body>
+ <ownedRule xmi:id="DecisionNode-zero_input_parameters" name="zero_input_parameters" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-zero_input_parameters-_ownedComment.0" annotatedElement="DecisionNode-zero_input_parameters">
+ <body>If the decision node has no decision input flow and an incoming control flow, then a decision input behavior has zero input parameters.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-parameters-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-zero_input_parameters-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="DecisionNode-incoming_object_one_input_parameter" name="incoming_object_one_input_parameter" constrainedElement="DecisionNode">
- <ownedComment xmi:id="DecisionNode-incoming_object_one_input_parameter-_ownedComment.0" annotatedElement="DecisionNode-incoming_object_one_input_parameter">
- <body>If the decision node has no decision input flow and an incoming object flow, then a decision input behavior has one input parameter whose type is the same as or a supertype of the type of object tokens offered on the incoming edge.</body>
+ <ownedRule xmi:id="DecisionNode-edges" name="edges" constrainedElement="DecisionNode">
+ <ownedComment xmi:id="DecisionNode-edges-_ownedComment.0" annotatedElement="DecisionNode-edges">
+ <body>The edges coming into and out of a decision node, other than the decision input flow (if any), must be either all object flows or all control flows.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-incoming_object_one_input_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DecisionNode-edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -5097,8 +5082,8 @@ endif</body>
<ownedComment xmi:id="Dependency-_ownedComment.0" annotatedElement="Dependency">
<body>A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).</body>
</ownedComment>
- <generalization xmi:id="Dependency-_generalization.0" general="DirectedRelationship"/>
- <generalization xmi:id="Dependency-_generalization.1" general="PackageableElement"/>
+ <generalization xmi:id="Dependency-_generalization.0" general="PackageableElement"/>
+ <generalization xmi:id="Dependency-_generalization.1" general="DirectedRelationship"/>
<ownedAttribute xmi:id="Dependency-client" name="client" visibility="public" type="NamedElement" subsettedProperty="DirectedRelationship-source" association="A_clientDependency_client">
<ownedComment xmi:id="Dependency-client-_ownedComment.0" annotatedElement="Dependency-client">
<body>The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.</body>
@@ -5140,7 +5125,7 @@ endif</body>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Deployment-deployedArtifact-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Deployment-deployedArtifact-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Deployment-location" name="location" visibility="public" type="DeploymentTarget" subsettedProperty="Dependency-client Element-owner" association="A_deployment_location">
+ <ownedAttribute xmi:id="Deployment-location" name="location" visibility="public" type="DeploymentTarget" subsettedProperty="Element-owner Dependency-client" association="A_deployment_location">
<ownedComment xmi:id="Deployment-location-_ownedComment.0" annotatedElement="Deployment-location">
<body>The DeployedTarget which is the target of a Deployment.</body>
</ownedComment>
@@ -5150,15 +5135,6 @@ endif</body>
<ownedComment xmi:id="DeploymentSpecification-_ownedComment.0" annotatedElement="DeploymentSpecification">
<body>A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor.</body>
</ownedComment>
- <ownedRule xmi:id="DeploymentSpecification-deployment_target" name="deployment_target" constrainedElement="DeploymentSpecification">
- <ownedComment xmi:id="DeploymentSpecification-deployment_target-_ownedComment.0" annotatedElement="DeploymentSpecification-deployment_target">
- <body>The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="DeploymentSpecification-deployment_target-_specification">
- <language>OCL</language>
- <body>self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="DeploymentSpecification-deployed_elements" name="deployed_elements" constrainedElement="DeploymentSpecification">
<ownedComment xmi:id="DeploymentSpecification-deployed_elements-_ownedComment.0" annotatedElement="DeploymentSpecification-deployed_elements">
<body>The deployedElements of a DeploymentTarget that are involved in a Deployment that has an associated Deployment-Specification is a kind of Component (i.e. the configured components).</body>
@@ -5169,6 +5145,15 @@ endif</body>
de.oclIsKindOf(Component)))</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="DeploymentSpecification-deployment_target" name="deployment_target" constrainedElement="DeploymentSpecification">
+ <ownedComment xmi:id="DeploymentSpecification-deployment_target-_ownedComment.0" annotatedElement="DeploymentSpecification-deployment_target">
+ <body>The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="DeploymentSpecification-deployment_target-_specification">
+ <language>OCL</language>
+ <body>self.deployment->forAll (d | d.location.oclIsKindOf(ExecutionEnvironment))</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="DeploymentSpecification-_generalization.0" general="Artifact"/>
<ownedAttribute xmi:id="DeploymentSpecification-deployment" name="deployment" visibility="public" type="Deployment" subsettedProperty="Element-owner" association="A_configuration_deployment">
<ownedComment xmi:id="DeploymentSpecification-deployment-_ownedComment.0" annotatedElement="DeploymentSpecification-deployment">
@@ -5491,15 +5476,6 @@ endif</body>
<ownedComment xmi:id="ElementImport-_ownedComment.0" annotatedElement="ElementImport">
<body>An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier.</body>
</ownedComment>
- <ownedRule xmi:id="ElementImport-imported_element_is_public" name="imported_element_is_public" constrainedElement="ElementImport">
- <ownedComment xmi:id="ElementImport-imported_element_is_public-_ownedComment.0" annotatedElement="ElementImport-imported_element_is_public">
- <body>An importedElement has either public visibility or no visibility at all.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ElementImport-imported_element_is_public-_specification">
- <language>OCL</language>
- <body>self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ElementImport-visibility_public_or_private" name="visibility_public_or_private" constrainedElement="ElementImport">
<ownedComment xmi:id="ElementImport-visibility_public_or_private-_ownedComment.0" annotatedElement="ElementImport-visibility_public_or_private">
<body>The visibility of an ElementImport is either public or private.</body>
@@ -5509,6 +5485,15 @@ endif</body>
<body>self.visibility = #public or self.visibility = #private</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ElementImport-imported_element_is_public" name="imported_element_is_public" constrainedElement="ElementImport">
+ <ownedComment xmi:id="ElementImport-imported_element_is_public-_ownedComment.0" annotatedElement="ElementImport-imported_element_is_public">
+ <body>An importedElement has either public visibility or no visibility at all.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ElementImport-imported_element_is_public-_specification">
+ <language>OCL</language>
+ <body>self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ElementImport-_generalization.0" general="DirectedRelationship"/>
<ownedAttribute xmi:id="ElementImport-alias" name="alias" visibility="public">
<ownedComment xmi:id="ElementImport-alias-_ownedComment.0" annotatedElement="ElementImport-alias">
@@ -5522,7 +5507,7 @@ endif</body>
<body>Specifies the PackageableElement whose name is to be added to a Namespace.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="ElementImport-importingNamespace" name="importingNamespace" visibility="public" type="Namespace" subsettedProperty="DirectedRelationship-source Element-owner" association="A_elementImport_importingNamespace">
+ <ownedAttribute xmi:id="ElementImport-importingNamespace" name="importingNamespace" visibility="public" type="Namespace" subsettedProperty="Element-owner DirectedRelationship-source" association="A_elementImport_importingNamespace">
<ownedComment xmi:id="ElementImport-importingNamespace-_ownedComment.0" annotatedElement="ElementImport-importingNamespace">
<body>Specifies the Namespace that imports a PackageableElement from another Package.</body>
</ownedComment>
@@ -5638,38 +5623,38 @@ endif</body>
<ownedComment xmi:id="ExceptionHandler-_ownedComment.0" annotatedElement="ExceptionHandler">
<body>An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node.</body>
</ownedComment>
- <ownedRule xmi:id="ExceptionHandler-exception_body" name="exception_body" constrainedElement="ExceptionHandler">
- <ownedComment xmi:id="ExceptionHandler-exception_body-_ownedComment.0" annotatedElement="ExceptionHandler-exception_body">
- <body>The exception handler and its input object node are not the source or target of any edge.</body>
+ <ownedRule xmi:id="ExceptionHandler-one_input" name="one_input" constrainedElement="ExceptionHandler">
+ <ownedComment xmi:id="ExceptionHandler-one_input-_ownedComment.0" annotatedElement="ExceptionHandler-one_input">
+ <body>The handler body has one input, and that input is the same as the exception input.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-exception_body-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-one_input-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ExceptionHandler-result_pins" name="result_pins" constrainedElement="ExceptionHandler">
- <ownedComment xmi:id="ExceptionHandler-result_pins-_ownedComment.0" annotatedElement="ExceptionHandler-result_pins">
- <body>If the protected node is a StructuredActivityNode with output pins, then the exception handler body must also be a StructuredActivityNode with output pins that correspond in number and types to those of the protected node.</body>
+ <ownedRule xmi:id="ExceptionHandler-edge_source_target" name="edge_source_target" constrainedElement="ExceptionHandler">
+ <ownedComment xmi:id="ExceptionHandler-edge_source_target-_ownedComment.0" annotatedElement="ExceptionHandler-edge_source_target">
+ <body>An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-result_pins-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-edge_source_target-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ExceptionHandler-one_input" name="one_input" constrainedElement="ExceptionHandler">
- <ownedComment xmi:id="ExceptionHandler-one_input-_ownedComment.0" annotatedElement="ExceptionHandler-one_input">
- <body>The handler body has one input, and that input is the same as the exception input.</body>
+ <ownedRule xmi:id="ExceptionHandler-result_pins" name="result_pins" constrainedElement="ExceptionHandler">
+ <ownedComment xmi:id="ExceptionHandler-result_pins-_ownedComment.0" annotatedElement="ExceptionHandler-result_pins">
+ <body>If the protected node is a StructuredActivityNode with output pins, then the exception handler body must also be a StructuredActivityNode with output pins that correspond in number and types to those of the protected node.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-one_input-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-result_pins-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ExceptionHandler-edge_source_target" name="edge_source_target" constrainedElement="ExceptionHandler">
- <ownedComment xmi:id="ExceptionHandler-edge_source_target-_ownedComment.0" annotatedElement="ExceptionHandler-edge_source_target">
- <body>An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.</body>
+ <ownedRule xmi:id="ExceptionHandler-exception_body" name="exception_body" constrainedElement="ExceptionHandler">
+ <ownedComment xmi:id="ExceptionHandler-exception_body-_ownedComment.0" annotatedElement="ExceptionHandler-exception_body">
+ <body>The exception handler and its input object node are not the source or target of any edge.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-edge_source_target-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ExceptionHandler-exception_body-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -5699,10 +5684,10 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="ExecutableNode" name="ExecutableNode" isAbstract="true">
<ownedComment xmi:id="ExecutableNode-_ownedComment.0" annotatedElement="ExecutableNode">
- <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
+ <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
</ownedComment>
<ownedComment xmi:id="ExecutableNode-_ownedComment.1" annotatedElement="ExecutableNode">
- <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
+ <body>An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.</body>
</ownedComment>
<generalization xmi:id="ExecutableNode-_generalization.0" general="ActivityNode"/>
<ownedAttribute xmi:id="ExecutableNode-handler" name="handler" visibility="public" type="ExceptionHandler" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_handler_protectedNode">
@@ -5818,10 +5803,10 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Expression" name="Expression">
<ownedComment xmi:id="Expression-_ownedComment.0" annotatedElement="Expression">
- <body>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.</body>
+ <body>An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.</body>
</ownedComment>
<ownedComment xmi:id="Expression-_ownedComment.1" annotatedElement="Expression">
- <body>An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.</body>
+ <body>An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.</body>
</ownedComment>
<generalization xmi:id="Expression-_generalization.0" general="ValueSpecification"/>
<ownedAttribute xmi:id="Expression-operand" name="operand" visibility="public" type="ValueSpecification" isOrdered="true" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_operand_expression">
@@ -5852,8 +5837,8 @@ endif</body>
<body>extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))</body>
</specification>
</ownedRule>
- <generalization xmi:id="Extend-_generalization.0" general="NamedElement"/>
- <generalization xmi:id="Extend-_generalization.1" general="DirectedRelationship"/>
+ <generalization xmi:id="Extend-_generalization.0" general="DirectedRelationship"/>
+ <generalization xmi:id="Extend-_generalization.1" general="NamedElement"/>
<ownedAttribute xmi:id="Extend-condition" name="condition" visibility="public" type="Constraint" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_condition_extend">
<ownedComment xmi:id="Extend-condition-_ownedComment.0" annotatedElement="Extend-condition">
<body>References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.</body>
@@ -5865,7 +5850,7 @@ endif</body>
<body>References the use case that is being extended.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="Extend-extension" name="extension" visibility="public" type="UseCase" subsettedProperty="NamedElement-namespace DirectedRelationship-source" association="A_extend_extension">
+ <ownedAttribute xmi:id="Extend-extension" name="extension" visibility="public" type="UseCase" subsettedProperty="DirectedRelationship-source NamedElement-namespace" association="A_extend_extension">
<ownedComment xmi:id="Extend-extension-_ownedComment.0" annotatedElement="Extend-extension">
<body>References the use case that represents the extension and owns the extend relationship.</body>
</ownedComment>
@@ -6070,15 +6055,6 @@ endif</body>
<ownedComment xmi:id="FinalState-_ownedComment.0" annotatedElement="FinalState">
<body>A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.</body>
</ownedComment>
- <ownedRule xmi:id="FinalState-no_exit_behavior" name="no_exit_behavior" constrainedElement="FinalState">
- <ownedComment xmi:id="FinalState-no_exit_behavior-_ownedComment.0" annotatedElement="FinalState-no_exit_behavior">
- <body>A final state has no exit behavior.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="FinalState-no_exit_behavior-_specification">
- <language>OCL</language>
- <body>self.exit->isEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="FinalState-no_outgoing_transitions" name="no_outgoing_transitions" constrainedElement="FinalState">
<ownedComment xmi:id="FinalState-no_outgoing_transitions-_ownedComment.0" annotatedElement="FinalState-no_outgoing_transitions">
<body>A final state cannot have any outgoing transitions.</body>
@@ -6088,15 +6064,6 @@ endif</body>
<body>self.outgoing->size() = 0</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="FinalState-no_regions" name="no_regions" constrainedElement="FinalState">
- <ownedComment xmi:id="FinalState-no_regions-_ownedComment.0" annotatedElement="FinalState-no_regions">
- <body>A final state cannot have regions.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="FinalState-no_regions-_specification">
- <language>OCL</language>
- <body>self.region->size() = 0</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="FinalState-cannot_reference_submachine" name="cannot_reference_submachine" constrainedElement="FinalState">
<ownedComment xmi:id="FinalState-cannot_reference_submachine-_ownedComment.0" annotatedElement="FinalState-cannot_reference_submachine">
<body>A final state cannot reference a submachine.</body>
@@ -6106,6 +6073,15 @@ endif</body>
<body>self.submachine->isEmpty()</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="FinalState-no_exit_behavior" name="no_exit_behavior" constrainedElement="FinalState">
+ <ownedComment xmi:id="FinalState-no_exit_behavior-_ownedComment.0" annotatedElement="FinalState-no_exit_behavior">
+ <body>A final state has no exit behavior.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="FinalState-no_exit_behavior-_specification">
+ <language>OCL</language>
+ <body>self.exit->isEmpty()</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="FinalState-no_entry_behavior" name="no_entry_behavior" constrainedElement="FinalState">
<ownedComment xmi:id="FinalState-no_entry_behavior-_ownedComment.0" annotatedElement="FinalState-no_entry_behavior">
<body>A final state has no entry behavior.</body>
@@ -6124,6 +6100,15 @@ endif</body>
<body>self.doActivity->isEmpty()</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="FinalState-no_regions" name="no_regions" constrainedElement="FinalState">
+ <ownedComment xmi:id="FinalState-no_regions-_ownedComment.0" annotatedElement="FinalState-no_regions">
+ <body>A final state cannot have regions.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="FinalState-no_regions-_specification">
+ <language>OCL</language>
+ <body>self.region->size() = 0</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="FinalState-_generalization.0" general="State"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="FlowFinalNode" name="FlowFinalNode">
@@ -6272,7 +6257,7 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Generalization-isSubstitutable-_lowerValue"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="Generalization-isSubstitutable-_defaultValue" value="true"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Generalization-specific" name="specific" visibility="public" type="Classifier" subsettedProperty="DirectedRelationship-source Element-owner" association="A_generalization_specific">
+ <ownedAttribute xmi:id="Generalization-specific" name="specific" visibility="public" type="Classifier" subsettedProperty="Element-owner DirectedRelationship-source" association="A_generalization_specific">
<ownedComment xmi:id="Generalization-specific-_ownedComment.0" annotatedElement="Generalization-specific">
<body>References the specializing classifier in the Generalization relationship.</body>
</ownedComment>
@@ -6282,15 +6267,6 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="GeneralizationSet-_ownedComment.0" annotatedElement="GeneralizationSet">
<body>A generalization set is a packageable element whose instances define collections of subsets of generalization relationships.</body>
</ownedComment>
- <ownedRule xmi:id="GeneralizationSet-generalization_same_classifier" name="generalization_same_classifier" constrainedElement="GeneralizationSet">
- <ownedComment xmi:id="GeneralizationSet-generalization_same_classifier-_ownedComment.0" annotatedElement="GeneralizationSet-generalization_same_classifier">
- <body>Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="GeneralizationSet-generalization_same_classifier-_specification">
- <language>OCL</language>
- <body>generalization->collect(g | g.general)->asSet()->size() &lt;= 1</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="GeneralizationSet-maps_to_generalization_set" name="maps_to_generalization_set" constrainedElement="GeneralizationSet">
<ownedComment xmi:id="GeneralizationSet-maps_to_generalization_set-_ownedComment.0" annotatedElement="GeneralizationSet-maps_to_generalization_set">
<body>The Classifier that maps to a GeneralizationSet may neither be a specific nor a general Classifier in any of the Generalization relationships defined for that GeneralizationSet. In other words, a power type may not be an instance of itself nor may its instances be its subclasses.</body>
@@ -6300,6 +6276,15 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="GeneralizationSet-generalization_same_classifier" name="generalization_same_classifier" constrainedElement="GeneralizationSet">
+ <ownedComment xmi:id="GeneralizationSet-generalization_same_classifier-_ownedComment.0" annotatedElement="GeneralizationSet-generalization_same_classifier">
+ <body>Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="GeneralizationSet-generalization_same_classifier-_specification">
+ <language>OCL</language>
+ <body>generalization->collect(g | g.general)->asSet()->size() &lt;= 1</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="GeneralizationSet-_generalization.0" general="PackageableElement"/>
<ownedAttribute xmi:id="GeneralizationSet-generalization" name="generalization" visibility="public" type="Generalization" association="A_generalizationSet_generalization">
<ownedComment xmi:id="GeneralizationSet-generalization-_ownedComment.0" annotatedElement="GeneralizationSet-generalization">
@@ -6367,7 +6352,7 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>References the use case that is to be included.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="Include-includingCase" name="includingCase" visibility="public" type="UseCase" subsettedProperty="NamedElement-namespace DirectedRelationship-source" association="A_include_includingCase">
+ <ownedAttribute xmi:id="Include-includingCase" name="includingCase" visibility="public" type="UseCase" subsettedProperty="DirectedRelationship-source NamedElement-namespace" association="A_include_includingCase">
<ownedComment xmi:id="Include-includingCase-_ownedComment.0" annotatedElement="Include-includingCase">
<body>References the use case which will include the addition and owns the include relationship.</body>
</ownedComment>
@@ -6377,15 +6362,6 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="InformationFlow-_ownedComment.0" annotatedElement="InformationFlow">
<body>An information flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of instance specification), they may be represented by a link that joins the two, and so on.</body>
</ownedComment>
- <ownedRule xmi:id="InformationFlow-must_conform" name="must_conform" constrainedElement="InformationFlow">
- <ownedComment xmi:id="InformationFlow-must_conform-_ownedComment.0" annotatedElement="InformationFlow-must_conform">
- <body>The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InformationFlow-must_conform-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="InformationFlow-sources_and_targets_kind" name="sources_and_targets_kind" constrainedElement="InformationFlow">
<ownedComment xmi:id="InformationFlow-sources_and_targets_kind-_ownedComment.0" annotatedElement="InformationFlow-sources_and_targets_kind">
<body>The sources and targets of the information flow can only be one of the following kind: Actor, Node, UseCase, Artifact, Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when its classifier is a relationship (i.e. it represents a link).</body>
@@ -6404,6 +6380,15 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification)))</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="InformationFlow-must_conform" name="must_conform" constrainedElement="InformationFlow">
+ <ownedComment xmi:id="InformationFlow-must_conform-_ownedComment.0" annotatedElement="InformationFlow-must_conform">
+ <body>The sources and targets of the information flow must conform with the sources and targets or conversely the targets and sources of the realization relationships.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InformationFlow-must_conform-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="InformationFlow-convey_classifiers" name="convey_classifiers" constrainedElement="InformationFlow">
<ownedComment xmi:id="InformationFlow-convey_classifiers-_ownedComment.0" annotatedElement="InformationFlow-convey_classifiers">
<body>An information flow can only convey classifiers that are allowed to represent an information item.</body>
@@ -6467,19 +6452,6 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="InformationItem-_ownedComment.0" annotatedElement="InformationItem">
<body>An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated.</body>
</ownedComment>
- <ownedRule xmi:id="InformationItem-sources_and_targets" name="sources_and_targets" constrainedElement="InformationItem">
- <ownedComment xmi:id="InformationItem-sources_and_targets-_ownedComment.0" annotatedElement="InformationItem-sources_and_targets">
- <body>The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InformationItem-sources_and_targets-_specification">
- <language>OCL</language>
- <body>(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |
- p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and
- p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and
- (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or
- oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="InformationItem-has_no" name="has_no" constrainedElement="InformationItem">
<ownedComment xmi:id="InformationItem-has_no-_ownedComment.0" annotatedElement="InformationItem-has_no">
<body>An informationItem has no feature, no generalization, and no associations.</body>
@@ -6498,6 +6470,19 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>isAbstract</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="InformationItem-sources_and_targets" name="sources_and_targets" constrainedElement="InformationItem">
+ <ownedComment xmi:id="InformationItem-sources_and_targets-_ownedComment.0" annotatedElement="InformationItem-sources_and_targets">
+ <body>The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InformationItem-sources_and_targets-_specification">
+ <language>OCL</language>
+ <body>(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |
+ p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and
+ p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and
+ (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or
+ oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="InformationItem-_generalization.0" general="Classifier"/>
<ownedAttribute xmi:id="InformationItem-represented" name="represented" visibility="public" type="Classifier" association="A_represented_representation">
<ownedComment xmi:id="InformationItem-represented-_ownedComment.0" annotatedElement="InformationItem-represented">
@@ -6548,20 +6533,11 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="InstanceSpecification" name="InstanceSpecification">
<ownedComment xmi:id="InstanceSpecification-_ownedComment.0" annotatedElement="InstanceSpecification">
- <body>An instance specification is a model element that represents an instance in a modeled system.</body>
+ <body>An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.</body>
</ownedComment>
<ownedComment xmi:id="InstanceSpecification-_ownedComment.1" annotatedElement="InstanceSpecification">
- <body>An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.</body>
+ <body>An instance specification is a model element that represents an instance in a modeled system.</body>
</ownedComment>
- <ownedRule xmi:id="InstanceSpecification-deployment_artifact" name="deployment_artifact" constrainedElement="InstanceSpecification">
- <ownedComment xmi:id="InstanceSpecification-deployment_artifact-_ownedComment.0" annotatedElement="InstanceSpecification-deployment_artifact">
- <body>An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InstanceSpecification-deployment_artifact-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="InstanceSpecification-structural_feature" name="structural_feature" constrainedElement="InstanceSpecification">
<ownedComment xmi:id="InstanceSpecification-structural_feature-_ownedComment.0" annotatedElement="InstanceSpecification-structural_feature">
<body>One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.</body>
@@ -6589,9 +6565,18 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>true</body>
</specification>
</ownedRule>
- <generalization xmi:id="InstanceSpecification-_generalization.0" general="DeploymentTarget"/>
+ <ownedRule xmi:id="InstanceSpecification-deployment_artifact" name="deployment_artifact" constrainedElement="InstanceSpecification">
+ <ownedComment xmi:id="InstanceSpecification-deployment_artifact-_ownedComment.0" annotatedElement="InstanceSpecification-deployment_artifact">
+ <body>An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InstanceSpecification-deployment_artifact-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:id="InstanceSpecification-_generalization.0" general="DeployedArtifact"/>
<generalization xmi:id="InstanceSpecification-_generalization.1" general="PackageableElement"/>
- <generalization xmi:id="InstanceSpecification-_generalization.2" general="DeployedArtifact"/>
+ <generalization xmi:id="InstanceSpecification-_generalization.2" general="DeploymentTarget"/>
<ownedAttribute xmi:id="InstanceSpecification-classifier" name="classifier" visibility="public" type="Classifier" association="A_classifier_instanceSpecification">
<ownedComment xmi:id="InstanceSpecification-classifier-_ownedComment.0" annotatedElement="InstanceSpecification-classifier">
<body>The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.</body>
@@ -6628,8 +6613,8 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="Interaction-_ownedComment.0" annotatedElement="Interaction">
<body>An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements.</body>
</ownedComment>
- <generalization xmi:id="Interaction-_generalization.0" general="InteractionFragment"/>
- <generalization xmi:id="Interaction-_generalization.1" general="Behavior"/>
+ <generalization xmi:id="Interaction-_generalization.0" general="Behavior"/>
+ <generalization xmi:id="Interaction-_generalization.1" general="InteractionFragment"/>
<ownedAttribute xmi:id="Interaction-action" name="action" visibility="public" type="Action" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_action_interaction">
<ownedComment xmi:id="Interaction-action-_ownedComment.0" annotatedElement="Interaction-action">
<body>Actions owned by the Interaction.</body>
@@ -6670,6 +6655,15 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="InteractionConstraint-_ownedComment.0" annotatedElement="InteractionConstraint">
<body>An interaction constraint is a Boolean expression that guards an operand in a combined fragment.</body>
</ownedComment>
+ <ownedRule xmi:id="InteractionConstraint-maxint_positive" name="maxint_positive" constrainedElement="InteractionConstraint">
+ <ownedComment xmi:id="InteractionConstraint-maxint_positive-_ownedComment.0" annotatedElement="InteractionConstraint-maxint_positive">
+ <body>If maxint is specified, then the expression must evaluate to a positive integer.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionConstraint-maxint_positive-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="InteractionConstraint-minint_maxint" name="minint_maxint" constrainedElement="InteractionConstraint">
<ownedComment xmi:id="InteractionConstraint-minint_maxint-_ownedComment.0" annotatedElement="InteractionConstraint-minint_maxint">
<body>Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.</body>
@@ -6688,24 +6682,6 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="InteractionConstraint-maxint_positive" name="maxint_positive" constrainedElement="InteractionConstraint">
- <ownedComment xmi:id="InteractionConstraint-maxint_positive-_ownedComment.0" annotatedElement="InteractionConstraint-maxint_positive">
- <body>If maxint is specified, then the expression must evaluate to a positive integer.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionConstraint-maxint_positive-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="InteractionConstraint-dynamic_variables" name="dynamic_variables" constrainedElement="InteractionConstraint">
- <ownedComment xmi:id="InteractionConstraint-dynamic_variables-_ownedComment.0" annotatedElement="InteractionConstraint-dynamic_variables">
- <body>The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionConstraint-dynamic_variables-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="InteractionConstraint-global_data" name="global_data" constrainedElement="InteractionConstraint">
<ownedComment xmi:id="InteractionConstraint-global_data-_ownedComment.0" annotatedElement="InteractionConstraint-global_data">
<body>The constraint may contain references to global data or write-once data.</body>
@@ -6724,6 +6700,15 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="InteractionConstraint-dynamic_variables" name="dynamic_variables" constrainedElement="InteractionConstraint">
+ <ownedComment xmi:id="InteractionConstraint-dynamic_variables-_ownedComment.0" annotatedElement="InteractionConstraint-dynamic_variables">
+ <body>The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionConstraint-dynamic_variables-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="InteractionConstraint-_generalization.0" general="Constraint"/>
<ownedAttribute xmi:id="InteractionConstraint-maxint" name="maxint" visibility="public" type="ValueSpecification" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_maxint_interactionConstraint">
<ownedComment xmi:id="InteractionConstraint-maxint-_ownedComment.0" annotatedElement="InteractionConstraint-maxint">
@@ -6774,20 +6759,20 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="InteractionOperand-_ownedComment.0" annotatedElement="InteractionOperand">
<body>An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment.</body>
</ownedComment>
- <ownedRule xmi:id="InteractionOperand-guard_contain_references" name="guard_contain_references" constrainedElement="InteractionOperand">
- <ownedComment xmi:id="InteractionOperand-guard_contain_references-_ownedComment.0" annotatedElement="InteractionOperand-guard_contain_references">
- <body>The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.</body>
+ <ownedRule xmi:id="InteractionOperand-guard_directly_prior" name="guard_directly_prior" constrainedElement="InteractionOperand">
+ <ownedComment xmi:id="InteractionOperand-guard_directly_prior-_ownedComment.0" annotatedElement="InteractionOperand-guard_directly_prior">
+ <body>The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionOperand-guard_contain_references-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionOperand-guard_directly_prior-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="InteractionOperand-guard_directly_prior" name="guard_directly_prior" constrainedElement="InteractionOperand">
- <ownedComment xmi:id="InteractionOperand-guard_directly_prior-_ownedComment.0" annotatedElement="InteractionOperand-guard_directly_prior">
- <body>The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.</body>
+ <ownedRule xmi:id="InteractionOperand-guard_contain_references" name="guard_contain_references" constrainedElement="InteractionOperand">
+ <ownedComment xmi:id="InteractionOperand-guard_contain_references-_ownedComment.0" annotatedElement="InteractionOperand-guard_contain_references">
+ <body>The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionOperand-guard_directly_prior-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionOperand-guard_contain_references-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -6812,20 +6797,11 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="InteractionUse-_ownedComment.0" annotatedElement="InteractionUse">
<body>An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.</body>
</ownedComment>
- <ownedRule xmi:id="InteractionUse-gates_match" name="gates_match" constrainedElement="InteractionUse">
- <ownedComment xmi:id="InteractionUse-gates_match-_ownedComment.0" annotatedElement="InteractionUse-gates_match">
- <body>Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-gates_match-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="InteractionUse-arguments_are_constants" name="arguments_are_constants" constrainedElement="InteractionUse">
- <ownedComment xmi:id="InteractionUse-arguments_are_constants-_ownedComment.0" annotatedElement="InteractionUse-arguments_are_constants">
- <body>The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.</body>
+ <ownedRule xmi:id="InteractionUse-all_lifelines" name="all_lifelines" constrainedElement="InteractionUse">
+ <ownedComment xmi:id="InteractionUse-all_lifelines-_ownedComment.0" annotatedElement="InteractionUse-all_lifelines">
+ <body>The InteractionUse must cover all Lifelines of the enclosing Interaction that represent the same properties as lifelines within the referred Interaction.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-arguments_are_constants-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-all_lifelines-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -6848,20 +6824,29 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="InteractionUse-returnValue_type_recipient_correspondence" name="returnValue_type_recipient_correspondence" constrainedElement="InteractionUse">
- <ownedComment xmi:id="InteractionUse-returnValue_type_recipient_correspondence-_ownedComment.0" annotatedElement="InteractionUse-returnValue_type_recipient_correspondence">
- <body>The type of the returnValue must correspond to the type of the returnValueRecipient.</body>
+ <ownedRule xmi:id="InteractionUse-gates_match" name="gates_match" constrainedElement="InteractionUse">
+ <ownedComment xmi:id="InteractionUse-gates_match-_ownedComment.0" annotatedElement="InteractionUse-gates_match">
+ <body>Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-returnValue_type_recipient_correspondence-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-gates_match-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="InteractionUse-all_lifelines" name="all_lifelines" constrainedElement="InteractionUse">
- <ownedComment xmi:id="InteractionUse-all_lifelines-_ownedComment.0" annotatedElement="InteractionUse-all_lifelines">
- <body>The InteractionUse must cover all Lifelines of the enclosing Interaction that represent the same properties as lifelines within the referred Interaction.</body>
+ <ownedRule xmi:id="InteractionUse-arguments_are_constants" name="arguments_are_constants" constrainedElement="InteractionUse">
+ <ownedComment xmi:id="InteractionUse-arguments_are_constants-_ownedComment.0" annotatedElement="InteractionUse-arguments_are_constants">
+ <body>The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-all_lifelines-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-arguments_are_constants-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="InteractionUse-returnValue_type_recipient_correspondence" name="returnValue_type_recipient_correspondence" constrainedElement="InteractionUse">
+ <ownedComment xmi:id="InteractionUse-returnValue_type_recipient_correspondence-_ownedComment.0" annotatedElement="InteractionUse-returnValue_type_recipient_correspondence">
+ <body>The type of the returnValue must correspond to the type of the returnValueRecipient.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="InteractionUse-returnValue_type_recipient_correspondence-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -6901,13 +6886,13 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Interface" name="Interface">
<ownedComment xmi:id="Interface-_ownedComment.0" annotatedElement="Interface">
- <body>Interfaces may include receptions (in addition to operations).</body>
+ <body>Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.</body>
</ownedComment>
<ownedComment xmi:id="Interface-_ownedComment.1" annotatedElement="Interface">
- <body>An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.</body>
+ <body>Interfaces may include receptions (in addition to operations).</body>
</ownedComment>
<ownedComment xmi:id="Interface-_ownedComment.2" annotatedElement="Interface">
- <body>Since an interface specifies conformance characteristics, it does not own detailed behavior specifications. Instead, interfaces may own a protocol state machine that specifies event sequences and pre/post conditions for the operations and receptions described by the interface.</body>
+ <body>An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract. The obligations that may be associated with an interface are in the form of various kinds of constraints (such as pre- and post-conditions) or protocol specifications, which may impose ordering restrictions on interactions through the interface.</body>
</ownedComment>
<ownedRule xmi:id="Interface-visibility" name="visibility" constrainedElement="Interface">
<ownedComment xmi:id="Interface-visibility-_ownedComment.0" annotatedElement="Interface-visibility">
@@ -6926,7 +6911,7 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Interface-nestedClassifier-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Interface-nestedClassifier-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Interface-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute Namespace-ownedMember" association="A_ownedAttribute_interface">
+ <ownedAttribute xmi:id="Interface-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Namespace-ownedMember Classifier-attribute" association="A_ownedAttribute_interface">
<ownedComment xmi:id="Interface-ownedAttribute-_ownedComment.0" annotatedElement="Interface-ownedAttribute">
<body>The attributes (i.e. the properties) owned by the class.</body>
</ownedComment>
@@ -6971,7 +6956,7 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<body>References the Interface specifying the conformance contract.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="InterfaceRealization-implementingClassifier" name="implementingClassifier" visibility="public" type="BehavioredClassifier" subsettedProperty="Dependency-client Element-owner" association="A_interfaceRealization_implementingClassifier">
+ <ownedAttribute xmi:id="InterfaceRealization-implementingClassifier" name="implementingClassifier" visibility="public" type="BehavioredClassifier" subsettedProperty="Element-owner Dependency-client" association="A_interfaceRealization_implementingClassifier">
<ownedComment xmi:id="InterfaceRealization-implementingClassifier-_ownedComment.0" annotatedElement="InterfaceRealization-implementingClassifier">
<body>References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).</body>
</ownedComment>
@@ -7035,10 +7020,10 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="InvocationAction" name="InvocationAction" isAbstract="true">
<ownedComment xmi:id="InvocationAction-_ownedComment.0" annotatedElement="InvocationAction">
- <body>In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.</body>
+ <body>InvocationAction is an abstract class for the various actions that invoke behavior.</body>
</ownedComment>
<ownedComment xmi:id="InvocationAction-_ownedComment.1" annotatedElement="InvocationAction">
- <body>InvocationAction is an abstract class for the various actions that invoke behavior.</body>
+ <body>In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.</body>
</ownedComment>
<ownedRule xmi:id="InvocationAction-on_port_receiver" name="on_port_receiver" constrainedElement="InvocationAction">
<ownedComment xmi:id="InvocationAction-on_port_receiver-_ownedComment.0" annotatedElement="InvocationAction-on_port_receiver">
@@ -7110,17 +7095,6 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
<ownedComment xmi:id="Lifeline-_ownedComment.0" annotatedElement="Lifeline">
<body>A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity.</body>
</ownedComment>
- <ownedRule xmi:id="Lifeline-selector_specified" name="selector_specified" constrainedElement="Lifeline">
- <ownedComment xmi:id="Lifeline-selector_specified-_ownedComment.0" annotatedElement="Lifeline-selector_specified">
- <body>The selector for a Lifeline must only be specified if the referenced Part is multivalued.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Lifeline-selector_specified-_specification">
- <language>OCL</language>
- <body>(self.selector->isEmpty() implies not self.represents.isMultivalued()) or
-(not self.selector->isEmpty() implies self.represents.isMultivalued())
-</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Lifeline-interaction_uses_share_lifeline" name="interaction_uses_share_lifeline" constrainedElement="Lifeline">
<ownedComment xmi:id="Lifeline-interaction_uses_share_lifeline-_ownedComment.0" annotatedElement="Lifeline-interaction_uses_share_lifeline">
<body>If two (or more) InteractionUses within one Interaction, refer to Interactions with 'common Lifelines,' those Lifelines must also appear in the Interaction with the InteractionUses. By common Lifelines we mean Lifelines with the same selector and represents associations.</body>
@@ -7141,6 +7115,17 @@ self.ownedParameters->forAll(p | p.type.notEmpty() and
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Lifeline-selector_specified" name="selector_specified" constrainedElement="Lifeline">
+ <ownedComment xmi:id="Lifeline-selector_specified-_ownedComment.0" annotatedElement="Lifeline-selector_specified">
+ <body>The selector for a Lifeline must only be specified if the referenced Part is multivalued.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Lifeline-selector_specified-_specification">
+ <language>OCL</language>
+ <body>(self.selector->isEmpty() implies not self.represents.isMultivalued()) or
+(not self.selector->isEmpty() implies self.represents.isMultivalued())
+</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="Lifeline-_generalization.0" general="NamedElement"/>
<ownedAttribute xmi:id="Lifeline-coveredBy" name="coveredBy" visibility="public" type="InteractionFragment" association="A_covered_coveredBy">
<ownedComment xmi:id="Lifeline-coveredBy-_ownedComment.0" annotatedElement="Lifeline-coveredBy">
@@ -7240,6 +7225,15 @@ else ledpins
<ownedComment xmi:id="LinkEndCreationData-_ownedComment.0" annotatedElement="LinkEndCreationData">
<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="LinkEndCreationData-create_link_action" name="create_link_action" constrainedElement="LinkEndCreationData">
+ <ownedComment xmi:id="LinkEndCreationData-create_link_action-_ownedComment.0" annotatedElement="LinkEndCreationData-create_link_action">
+ <body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndCreationData-create_link_action-_specification">
+ <language>OCL</language>
+ <body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="LinkEndCreationData-single_input_pin" name="single_input_pin" constrainedElement="LinkEndCreationData">
<ownedComment xmi:id="LinkEndCreationData-single_input_pin-_ownedComment.0" annotatedElement="LinkEndCreationData-single_input_pin">
<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>
@@ -7257,15 +7251,6 @@ endif
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LinkEndCreationData-create_link_action" name="create_link_action" constrainedElement="LinkEndCreationData">
- <ownedComment xmi:id="LinkEndCreationData-create_link_action-_ownedComment.0" annotatedElement="LinkEndCreationData-create_link_action">
- <body>LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndCreationData-create_link_action-_specification">
- <language>OCL</language>
- <body>self.LinkAction.oclIsKindOf(CreateLinkAction)</body>
- </specification>
- </ownedRule>
<generalization xmi:id="LinkEndCreationData-_generalization.0" general="LinkEndData"/>
<ownedAttribute xmi:id="LinkEndCreationData-insertAt" name="insertAt" visibility="public" type="InputPin" association="A_insertAt_linkEndCreationData">
<ownedComment xmi:id="LinkEndCreationData-insertAt-_ownedComment.0" annotatedElement="LinkEndCreationData-insertAt">
@@ -7285,6 +7270,24 @@ endif
<ownedComment xmi:id="LinkEndData-_ownedComment.0" annotatedElement="LinkEndData">
<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="LinkEndData-property_is_association_end" name="property_is_association_end" constrainedElement="LinkEndData">
+ <ownedComment xmi:id="LinkEndData-property_is_association_end-_ownedComment.0" annotatedElement="LinkEndData-property_is_association_end">
+ <body>The property must be an association end.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndData-property_is_association_end-_specification">
+ <language>OCL</language>
+ <body>self.end.association->size() = 1</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="LinkEndData-end_object_input_pin" name="end_object_input_pin" constrainedElement="LinkEndData">
+ <ownedComment xmi:id="LinkEndData-end_object_input_pin-_ownedComment.0" annotatedElement="LinkEndData-end_object_input_pin">
+ <body>The end object input pin is not also a qualifier value input pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndData-end_object_input_pin-_specification">
+ <language>OCL</language>
+ <body>self.value->excludesAll(self.qualifier.value)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="LinkEndData-same_type" name="same_type" constrainedElement="LinkEndData">
<ownedComment xmi:id="LinkEndData-same_type-_ownedComment.0" annotatedElement="LinkEndData-same_type">
<body>The type of the end object input pin is the same as the type of the association end.</body>
@@ -7303,24 +7306,6 @@ endif
<body>self.value.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LinkEndData-end_object_input_pin" name="end_object_input_pin" constrainedElement="LinkEndData">
- <ownedComment xmi:id="LinkEndData-end_object_input_pin-_ownedComment.0" annotatedElement="LinkEndData-end_object_input_pin">
- <body>The end object input pin is not also a qualifier value input pin.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndData-end_object_input_pin-_specification">
- <language>OCL</language>
- <body>self.value->excludesAll(self.qualifier.value)</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="LinkEndData-property_is_association_end" name="property_is_association_end" constrainedElement="LinkEndData">
- <ownedComment xmi:id="LinkEndData-property_is_association_end-_ownedComment.0" annotatedElement="LinkEndData-property_is_association_end">
- <body>The property must be an association end.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndData-property_is_association_end-_specification">
- <language>OCL</language>
- <body>self.end.association->size() = 1</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="LinkEndData-qualifiers" name="qualifiers" constrainedElement="LinkEndData">
<ownedComment xmi:id="LinkEndData-qualifiers-_ownedComment.0" annotatedElement="LinkEndData-qualifiers">
<body>The qualifiers include all and only the qualifiers of the association end.</body>
@@ -7354,20 +7339,20 @@ endif
<ownedComment xmi:id="LinkEndDestructionData-_ownedComment.0" annotatedElement="LinkEndDestructionData">
<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="LinkEndDestructionData-unlimited_natural_and_multiplicity" name="unlimited_natural_and_multiplicity" constrainedElement="LinkEndDestructionData">
- <ownedComment xmi:id="LinkEndDestructionData-unlimited_natural_and_multiplicity-_ownedComment.0" annotatedElement="LinkEndDestructionData-unlimited_natural_and_multiplicity">
- <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>
+ <ownedRule xmi:id="LinkEndDestructionData-destroy_link_action" name="destroy_link_action" constrainedElement="LinkEndDestructionData">
+ <ownedComment xmi:id="LinkEndDestructionData-destroy_link_action-_ownedComment.0" annotatedElement="LinkEndDestructionData-destroy_link_action">
+ <body>LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndDestructionData-unlimited_natural_and_multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndDestructionData-destroy_link_action-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LinkEndDestructionData-destroy_link_action" name="destroy_link_action" constrainedElement="LinkEndDestructionData">
- <ownedComment xmi:id="LinkEndDestructionData-destroy_link_action-_ownedComment.0" annotatedElement="LinkEndDestructionData-destroy_link_action">
- <body>LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.</body>
+ <ownedRule xmi:id="LinkEndDestructionData-unlimited_natural_and_multiplicity" name="unlimited_natural_and_multiplicity" constrainedElement="LinkEndDestructionData">
+ <ownedComment xmi:id="LinkEndDestructionData-unlimited_natural_and_multiplicity-_ownedComment.0" annotatedElement="LinkEndDestructionData-unlimited_natural_and_multiplicity">
+ <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="LinkEndDestructionData-destroy_link_action-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LinkEndDestructionData-unlimited_natural_and_multiplicity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -7632,38 +7617,38 @@ endif
<ownedComment xmi:id="LoopNode-_ownedComment.0" annotatedElement="LoopNode">
<body>A loop node is a structured activity node that represents a loop with setup, test, and body sections.</body>
</ownedComment>
- <ownedRule xmi:id="LoopNode-result_no_incoming" name="result_no_incoming" constrainedElement="LoopNode">
- <ownedComment xmi:id="LoopNode-result_no_incoming-_ownedComment.0" annotatedElement="LoopNode-result_no_incoming">
- <body>The result output pins have no incoming edges.</body>
+ <ownedRule xmi:id="LoopNode-executable_nodes" name="executable_nodes" constrainedElement="LoopNode">
+ <ownedComment xmi:id="LoopNode-executable_nodes-_ownedComment.0" annotatedElement="LoopNode-executable_nodes">
+ <body>The union of the ExecutableNodes in the setupPart, test and bodyPart of a LoopNode must be the same as the subset of nodes contained in the LoopNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-result_no_incoming-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-executable_nodes-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LoopNode-input_edges" name="input_edges" constrainedElement="LoopNode">
- <ownedComment xmi:id="LoopNode-input_edges-_ownedComment.0" annotatedElement="LoopNode-input_edges">
- <body>Loop variable inputs must not have outgoing edges.</body>
+ <ownedRule xmi:id="LoopNode-body_output_pins" name="body_output_pins" constrainedElement="LoopNode">
+ <ownedComment xmi:id="LoopNode-body_output_pins-_ownedComment.0" annotatedElement="LoopNode-body_output_pins">
+ <body>The bodyOutput pins are output pins on actions in the body of the loop node.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-input_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-body_output_pins-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LoopNode-executable_nodes" name="executable_nodes" constrainedElement="LoopNode">
- <ownedComment xmi:id="LoopNode-executable_nodes-_ownedComment.0" annotatedElement="LoopNode-executable_nodes">
- <body>The union of the ExecutableNodes in the setupPart, test and bodyPart of a LoopNode must be the same as the subset of nodes contained in the LoopNode (considered as a StructuredActivityNode) that are ExecutableNodes.</body>
+ <ownedRule xmi:id="LoopNode-result_no_incoming" name="result_no_incoming" constrainedElement="LoopNode">
+ <ownedComment xmi:id="LoopNode-result_no_incoming-_ownedComment.0" annotatedElement="LoopNode-result_no_incoming">
+ <body>The result output pins have no incoming edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-executable_nodes-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-result_no_incoming-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="LoopNode-body_output_pins" name="body_output_pins" constrainedElement="LoopNode">
- <ownedComment xmi:id="LoopNode-body_output_pins-_ownedComment.0" annotatedElement="LoopNode-body_output_pins">
- <body>The bodyOutput pins are output pins on actions in the body of the loop node.</body>
+ <ownedRule xmi:id="LoopNode-input_edges" name="input_edges" constrainedElement="LoopNode">
+ <ownedComment xmi:id="LoopNode-input_edges-_ownedComment.0" annotatedElement="LoopNode-input_edges">
+ <body>Loop variable inputs must not have outgoing edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-body_output_pins-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="LoopNode-input_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -7778,56 +7763,56 @@ endif
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-arguments" name="arguments" constrainedElement="Message">
- <ownedComment xmi:id="Message-arguments-_ownedComment.0" annotatedElement="Message-arguments">
- <body>Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction</body>
+ <ownedRule xmi:id="Message-occurrence_specifications" name="occurrence_specifications" constrainedElement="Message">
+ <ownedComment xmi:id="Message-occurrence_specifications-_ownedComment.0" annotatedElement="Message-occurrence_specifications">
+ <body>If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-arguments-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-occurrence_specifications-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-cannot_cross_boundaries" name="cannot_cross_boundaries" constrainedElement="Message">
- <ownedComment xmi:id="Message-cannot_cross_boundaries-_ownedComment.0" annotatedElement="Message-cannot_cross_boundaries">
- <body>Messages cannot cross bounderies of CombinedFragments or their operands.</body>
+ <ownedRule xmi:id="Message-signature_is_signal" name="signature_is_signal" constrainedElement="Message">
+ <ownedComment xmi:id="Message-signature_is_signal-_ownedComment.0" annotatedElement="Message-signature_is_signal">
+ <body>In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-cannot_cross_boundaries-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_is_signal-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-signature_is_signal" name="signature_is_signal" constrainedElement="Message">
- <ownedComment xmi:id="Message-signature_is_signal-_ownedComment.0" annotatedElement="Message-signature_is_signal">
- <body>In the case when the Message signature is a Signal, the arguments of the Message must correspond to the attributes of the Signal. A Message Argument corresponds to a Signal Attribute if the Arguement is of the same Class or a specialization of that of the Attribute.</body>
+ <ownedRule xmi:id="Message-signature_is_operation" name="signature_is_operation" constrainedElement="Message">
+ <ownedComment xmi:id="Message-signature_is_operation-_ownedComment.0" annotatedElement="Message-signature_is_operation">
+ <body>In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_is_signal-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_is_operation-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-occurrence_specifications" name="occurrence_specifications" constrainedElement="Message">
- <ownedComment xmi:id="Message-occurrence_specifications-_ownedComment.0" annotatedElement="Message-occurrence_specifications">
- <body>If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.</body>
+ <ownedRule xmi:id="Message-arguments" name="arguments" constrainedElement="Message">
+ <ownedComment xmi:id="Message-arguments-_ownedComment.0" annotatedElement="Message-arguments">
+ <body>Arguments of a Message must only be: i) attributes of the sending lifeline ii) constants iii) symbolic values (which are wildcard values representing any legal value) iv) explicit parameters of the enclosing Interaction v) attributes of the class owning the Interaction</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-occurrence_specifications-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-arguments-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-signature_refer_to" name="signature_refer_to" constrainedElement="Message">
- <ownedComment xmi:id="Message-signature_refer_to-_ownedComment.0" annotatedElement="Message-signature_refer_to">
- <body>The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.</body>
+ <ownedRule xmi:id="Message-cannot_cross_boundaries" name="cannot_cross_boundaries" constrainedElement="Message">
+ <ownedComment xmi:id="Message-cannot_cross_boundaries-_ownedComment.0" annotatedElement="Message-cannot_cross_boundaries">
+ <body>Messages cannot cross bounderies of CombinedFragments or their operands.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_refer_to-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-cannot_cross_boundaries-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Message-signature_is_operation" name="signature_is_operation" constrainedElement="Message">
- <ownedComment xmi:id="Message-signature_is_operation-_ownedComment.0" annotatedElement="Message-signature_is_operation">
- <body>In the case when the Message signature is an Operation, the arguments of the Message must correspond to the parameters of the Operation. A Parameter corresponds to an Argument if the Argument is of the same Class or a specialization of that of the Parameter.</body>
+ <ownedRule xmi:id="Message-signature_refer_to" name="signature_refer_to" constrainedElement="Message">
+ <ownedComment xmi:id="Message-signature_refer_to-_ownedComment.0" annotatedElement="Message-signature_refer_to">
+ <body>The signature must either refer an Operation (in which case messageSort is either synchCall or asynchCall) or a Signal (in which case messageSort is asynchSignal). The name of the NamedElement referenced by signature must be the same as that of the Message.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_is_operation-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Message-signature_refer_to-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -7916,8 +7901,8 @@ endif
<ownedComment xmi:id="MessageOccurrenceSpecification-_ownedComment.0" annotatedElement="MessageOccurrenceSpecification">
<body>A message occurrence specification pecifies the occurrence of message events, such as sending and receiving of signals or invoking or receiving of operation calls. A message occurrence specification is a kind of message end. Messages are generated either by synchronous operation calls or asynchronous signal sends. They are received by the execution of corresponding accept event actions.</body>
</ownedComment>
- <generalization xmi:id="MessageOccurrenceSpecification-_generalization.0" general="MessageEnd"/>
- <generalization xmi:id="MessageOccurrenceSpecification-_generalization.1" general="OccurrenceSpecification"/>
+ <generalization xmi:id="MessageOccurrenceSpecification-_generalization.0" general="OccurrenceSpecification"/>
+ <generalization xmi:id="MessageOccurrenceSpecification-_generalization.1" general="MessageEnd"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Model" name="Model">
<ownedComment xmi:id="Model-_ownedComment.0" annotatedElement="Model">
@@ -7936,15 +7921,6 @@ endif
<ownedComment xmi:id="MultiplicityElement-_ownedComment.0" annotatedElement="MultiplicityElement">
<body>A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.</body>
</ownedComment>
- <ownedRule xmi:id="MultiplicityElement-upper_ge_lower" name="upper_ge_lower" constrainedElement="MultiplicityElement">
- <ownedComment xmi:id="MultiplicityElement-upper_ge_lower-_ownedComment.0" annotatedElement="MultiplicityElement-upper_ge_lower">
- <body>The upper bound must be greater than or equal to the lower bound.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-upper_ge_lower-_specification">
- <language>OCL</language>
- <body>(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="MultiplicityElement-lower_ge_0" name="lower_ge_0" constrainedElement="MultiplicityElement">
<ownedComment xmi:id="MultiplicityElement-lower_ge_0-_ownedComment.0" annotatedElement="MultiplicityElement-lower_ge_0">
<body>The lower bound must be a non-negative integer literal.</body>
@@ -7954,13 +7930,13 @@ endif
<body>lowerBound()->notEmpty() implies lowerBound() >= 0</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="MultiplicityElement-value_specification_no_side_effects" name="value_specification_no_side_effects" constrainedElement="MultiplicityElement">
- <ownedComment xmi:id="MultiplicityElement-value_specification_no_side_effects-_ownedComment.0" annotatedElement="MultiplicityElement-value_specification_no_side_effects">
- <body>If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.</body>
+ <ownedRule xmi:id="MultiplicityElement-upper_ge_lower" name="upper_ge_lower" constrainedElement="MultiplicityElement">
+ <ownedComment xmi:id="MultiplicityElement-upper_ge_lower-_ownedComment.0" annotatedElement="MultiplicityElement-upper_ge_lower">
+ <body>The upper bound must be greater than or equal to the lower bound.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-value_specification_no_side_effects-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-upper_ge_lower-_specification">
<language>OCL</language>
- <body>true</body>
+ <body>(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="MultiplicityElement-value_specification_constant" name="value_specification_constant" constrainedElement="MultiplicityElement">
@@ -7972,6 +7948,15 @@ endif
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="MultiplicityElement-value_specification_no_side_effects" name="value_specification_no_side_effects" constrainedElement="MultiplicityElement">
+ <ownedComment xmi:id="MultiplicityElement-value_specification_no_side_effects-_ownedComment.0" annotatedElement="MultiplicityElement-value_specification_no_side_effects">
+ <body>If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-value_specification_no_side_effects-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="MultiplicityElement-_generalization.0" general="Element"/>
<ownedAttribute xmi:id="MultiplicityElement-isOrdered" name="isOrdered" visibility="public">
<ownedComment xmi:id="MultiplicityElement-isOrdered-_ownedComment.0" annotatedElement="MultiplicityElement-isOrdered">
@@ -8057,18 +8042,18 @@ endif
<ownedComment xmi:id="MultiplicityElement-includesMultiplicity-_ownedComment.0" annotatedElement="MultiplicityElement-includesMultiplicity">
<body>The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.</body>
</ownedComment>
- <ownedRule xmi:id="MultiplicityElement-includesMultiplicity-pre" name="pre" constrainedElement="MultiplicityElement-includesMultiplicity">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-includesMultiplicity-pre-_specification">
- <language>OCL</language>
- <body>self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="MultiplicityElement-includesMultiplicity-spec" name="spec" constrainedElement="MultiplicityElement-includesMultiplicity">
<specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-includesMultiplicity-spec-_specification">
<language>OCL</language>
<body>result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="MultiplicityElement-includesMultiplicity-pre" name="pre" constrainedElement="MultiplicityElement-includesMultiplicity">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-includesMultiplicity-pre-_specification">
+ <language>OCL</language>
+ <body>self.upperBound()->notEmpty() and self.lowerBound()->notEmpty() and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()</body>
+ </specification>
+ </ownedRule>
<ownedParameter xmi:id="MultiplicityElement-includesMultiplicity-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -8098,18 +8083,18 @@ endif
<ownedComment xmi:id="MultiplicityElement-isMultivalued-_ownedComment.0" annotatedElement="MultiplicityElement-isMultivalued">
<body>The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.</body>
</ownedComment>
- <ownedRule xmi:id="MultiplicityElement-isMultivalued-pre" name="pre" constrainedElement="MultiplicityElement-isMultivalued">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-isMultivalued-pre-_specification">
- <language>OCL</language>
- <body>upperBound()->notEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="MultiplicityElement-isMultivalued-spec" name="spec" constrainedElement="MultiplicityElement-isMultivalued">
<specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-isMultivalued-spec-_specification">
<language>OCL</language>
<body>result = upperBound() > 1</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="MultiplicityElement-isMultivalued-pre" name="pre" constrainedElement="MultiplicityElement-isMultivalued">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="MultiplicityElement-isMultivalued-pre-_specification">
+ <language>OCL</language>
+ <body>upperBound()->notEmpty()</body>
+ </specification>
+ </ownedRule>
<ownedParameter xmi:id="MultiplicityElement-isMultivalued-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -8182,15 +8167,6 @@ endif
<ownedComment xmi:id="NamedElement-_ownedComment.1" annotatedElement="NamedElement">
<body>A named element is an element in a model that may have a name.</body>
</ownedComment>
- <ownedRule xmi:id="NamedElement-visibility_needs_ownership" name="visibility_needs_ownership" constrainedElement="NamedElement">
- <ownedComment xmi:id="NamedElement-visibility_needs_ownership-_ownedComment.0" annotatedElement="NamedElement-visibility_needs_ownership">
- <body>If a NamedElement is not owned by a Namespace, it does not have a visibility.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-visibility_needs_ownership-_specification">
- <language>OCL</language>
- <body>namespace->isEmpty() implies visibility->isEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="NamedElement-has_qualified_name" name="has_qualified_name" constrainedElement="NamedElement">
<ownedComment xmi:id="NamedElement-has_qualified_name-_ownedComment.0" annotatedElement="NamedElement-has_qualified_name">
<body>When there is a name, and all of the containing namespaces have a name, the qualified name is constructed from the names of the containing namespaces.</body>
@@ -8211,6 +8187,15 @@ endif
implies self.qualifiedName->isEmpty()</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="NamedElement-visibility_needs_ownership" name="visibility_needs_ownership" constrainedElement="NamedElement">
+ <ownedComment xmi:id="NamedElement-visibility_needs_ownership-_ownedComment.0" annotatedElement="NamedElement-visibility_needs_ownership">
+ <body>If a NamedElement is not owned by a Namespace, it does not have a visibility.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="NamedElement-visibility_needs_ownership-_specification">
+ <language>OCL</language>
+ <body>namespace->isEmpty() implies visibility->isEmpty()</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="NamedElement-_generalization.0" general="Element"/>
<ownedAttribute xmi:id="NamedElement-clientDependency" name="clientDependency" visibility="public" type="Dependency" subsettedProperty="A_source_directedRelationship-directedRelationship" association="A_clientDependency_client">
<ownedComment xmi:id="NamedElement-clientDependency-_ownedComment.0" annotatedElement="NamedElement-clientDependency">
@@ -8365,7 +8350,7 @@ endif</body>
</specification>
</ownedRule>
<generalization xmi:id="Namespace-_generalization.0" general="NamedElement"/>
- <ownedAttribute xmi:id="Namespace-elementImport" name="elementImport" visibility="public" type="ElementImport" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_elementImport_importingNamespace">
+ <ownedAttribute xmi:id="Namespace-elementImport" name="elementImport" visibility="public" type="ElementImport" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_elementImport_importingNamespace">
<ownedComment xmi:id="Namespace-elementImport-_ownedComment.0" annotatedElement="Namespace-elementImport">
<body>References the ElementImports owned by the Namespace.</body>
</ownedComment>
@@ -8400,7 +8385,7 @@ endif</body>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Namespace-ownedRule-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Namespace-ownedRule-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Namespace-packageImport" name="packageImport" visibility="public" type="PackageImport" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_packageImport_importingNamespace">
+ <ownedAttribute xmi:id="Namespace-packageImport" name="packageImport" visibility="public" type="PackageImport" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_packageImport_importingNamespace">
<ownedComment xmi:id="Namespace-packageImport-_ownedComment.0" annotatedElement="Namespace-packageImport">
<body>References the PackageImports owned by the Namespace.</body>
</ownedComment>
@@ -8428,10 +8413,10 @@ endif</body>
</ownedOperation>
<ownedOperation xmi:id="Namespace-getNamesOfMember" name="getNamesOfMember" visibility="public" bodyCondition="Namespace-getNamesOfMember-spec" isQuery="true">
<ownedComment xmi:id="Namespace-getNamesOfMember-_ownedComment.0" annotatedElement="Namespace-getNamesOfMember">
- <body>The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
+ <body>The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
</ownedComment>
<ownedComment xmi:id="Namespace-getNamesOfMember-_ownedComment.1" annotatedElement="Namespace-getNamesOfMember">
- <body>The query getNamesOfMember() gives a set of all of the names that a member would have in a Namespace. In general a member can have multiple names in a Namespace if it is imported more than once with different aliases. The query takes account of importing. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
+ <body>The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.</body>
</ownedComment>
<ownedRule xmi:id="Namespace-getNamesOfMember-spec" name="spec" constrainedElement="Namespace-getNamesOfMember">
<specification xmi:type="uml:OpaqueExpression" xmi:id="Namespace-getNamesOfMember-spec-_specification">
@@ -8551,56 +8536,56 @@ memb.isDistinguishableFrom(other, self)))</body>
<ownedComment xmi:id="ObjectFlow-_ownedComment.1" annotatedElement="ObjectFlow">
<body>Object flows have support for multicast/receive, token selection from object nodes, and transformation of tokens.</body>
</ownedComment>
- <ownedRule xmi:id="ObjectFlow-input_and_output_parameter" name="input_and_output_parameter" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-input_and_output_parameter-_ownedComment.0" annotatedElement="ObjectFlow-input_and_output_parameter">
- <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.</body>
+ <ownedRule xmi:id="ObjectFlow-is_multicast_or_is_multireceive" name="is_multicast_or_is_multireceive" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-is_multicast_or_is_multireceive-_ownedComment.0" annotatedElement="ObjectFlow-is_multicast_or_is_multireceive">
+ <body>isMulticast and isMultireceive cannot both be true.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-input_and_output_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-is_multicast_or_is_multireceive-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-no_actions" name="no_actions" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-no_actions-_ownedComment.0" annotatedElement="ObjectFlow-no_actions">
- <body>Object flows may not have actions at either end.</body>
+ <ownedRule xmi:id="ObjectFlow-selection_behaviour" name="selection_behaviour" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-selection_behaviour-_ownedComment.0" annotatedElement="ObjectFlow-selection_behaviour">
+ <body>An object flow may have a selection behavior only if has an object node as a source.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-no_actions-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-selection_behaviour-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-transformation_behaviour" name="transformation_behaviour" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-transformation_behaviour-_ownedComment.0" annotatedElement="ObjectFlow-transformation_behaviour">
- <body>A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.</body>
+ <ownedRule xmi:id="ObjectFlow-compatible_types" name="compatible_types" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-compatible_types-_ownedComment.0" annotatedElement="ObjectFlow-compatible_types">
+ <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-transformation_behaviour-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-compatible_types-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-selection_behaviour" name="selection_behaviour" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-selection_behaviour-_ownedComment.0" annotatedElement="ObjectFlow-selection_behaviour">
- <body>An object flow may have a selection behavior only if has an object node as a source.</body>
+ <ownedRule xmi:id="ObjectFlow-no_actions" name="no_actions" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-no_actions-_ownedComment.0" annotatedElement="ObjectFlow-no_actions">
+ <body>Object flows may not have actions at either end.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-selection_behaviour-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-no_actions-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-compatible_types" name="compatible_types" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-compatible_types-_ownedComment.0" annotatedElement="ObjectFlow-compatible_types">
- <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have compatible types. In particular, the downstream object node type must be the same or a supertype of the upstream object node type.</body>
+ <ownedRule xmi:id="ObjectFlow-input_and_output_parameter" name="input_and_output_parameter" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-input_and_output_parameter-_ownedComment.0" annotatedElement="ObjectFlow-input_and_output_parameter">
+ <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same as or a supertype of the type of source object node. The output parameter must be the same or a subtype of the type of source object node. The behavior cannot have side effects.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-compatible_types-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-input_and_output_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-same_upper_bounds" name="same_upper_bounds" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-same_upper_bounds-_ownedComment.0" annotatedElement="ObjectFlow-same_upper_bounds">
- <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.</body>
+ <ownedRule xmi:id="ObjectFlow-transformation_behaviour" name="transformation_behaviour" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-transformation_behaviour-_ownedComment.0" annotatedElement="ObjectFlow-transformation_behaviour">
+ <body>A transformation behavior has one input parameter and one output parameter. The input parameter must be the same as or a supertype of the type of object token coming from the source end. The output parameter must be the same or a subtype of the type of object token expected downstream. The behavior cannot have side effects.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-same_upper_bounds-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-transformation_behaviour-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -8614,11 +8599,11 @@ memb.isDistinguishableFrom(other, self)))</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectFlow-is_multicast_or_is_multireceive" name="is_multicast_or_is_multireceive" constrainedElement="ObjectFlow">
- <ownedComment xmi:id="ObjectFlow-is_multicast_or_is_multireceive-_ownedComment.0" annotatedElement="ObjectFlow-is_multicast_or_is_multireceive">
- <body>isMulticast and isMultireceive cannot both be true.</body>
+ <ownedRule xmi:id="ObjectFlow-same_upper_bounds" name="same_upper_bounds" constrainedElement="ObjectFlow">
+ <ownedComment xmi:id="ObjectFlow-same_upper_bounds-_ownedComment.0" annotatedElement="ObjectFlow-same_upper_bounds">
+ <body>Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-is_multicast_or_is_multireceive-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectFlow-same_upper_bounds-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -8653,16 +8638,16 @@ memb.isDistinguishableFrom(other, self)))</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="ObjectNode" name="ObjectNode" isAbstract="true">
<ownedComment xmi:id="ObjectNode-_ownedComment.0" annotatedElement="ObjectNode">
- <body>Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.</body>
+ <body>An object node is an abstract activity node that is part of defining object flow in an activity.</body>
</ownedComment>
<ownedComment xmi:id="ObjectNode-_ownedComment.1" annotatedElement="ObjectNode">
- <body>An object node is an abstract activity node that is part of defining object flow in an activity.</body>
+ <body>Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.</body>
</ownedComment>
- <ownedRule xmi:id="ObjectNode-input_output_parameter" name="input_output_parameter" constrainedElement="ObjectNode">
- <ownedComment xmi:id="ObjectNode-input_output_parameter-_ownedComment.0" annotatedElement="ObjectNode-input_output_parameter">
- <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.</body>
+ <ownedRule xmi:id="ObjectNode-object_flow_edges" name="object_flow_edges" constrainedElement="ObjectNode">
+ <ownedComment xmi:id="ObjectNode-object_flow_edges-_ownedComment.0" annotatedElement="ObjectNode-object_flow_edges">
+ <body>All edges coming into or going out of object nodes must be object flow edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectNode-input_output_parameter-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectNode-object_flow_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -8676,17 +8661,17 @@ memb.isDistinguishableFrom(other, self)))</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ObjectNode-object_flow_edges" name="object_flow_edges" constrainedElement="ObjectNode">
- <ownedComment xmi:id="ObjectNode-object_flow_edges-_ownedComment.0" annotatedElement="ObjectNode-object_flow_edges">
- <body>All edges coming into or going out of object nodes must be object flow edges.</body>
+ <ownedRule xmi:id="ObjectNode-input_output_parameter" name="input_output_parameter" constrainedElement="ObjectNode">
+ <ownedComment xmi:id="ObjectNode-input_output_parameter-_ownedComment.0" annotatedElement="ObjectNode-input_output_parameter">
+ <body>A selection behavior has one input parameter and one output parameter. The input parameter must be a bag of elements of the same type as the object node or a supertype of the type of object node. The output parameter must be the same or a subtype of the type of object node. The behavior cannot have side effects.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectNode-object_flow_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ObjectNode-input_output_parameter-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <generalization xmi:id="ObjectNode-_generalization.0" general="TypedElement"/>
- <generalization xmi:id="ObjectNode-_generalization.1" general="ActivityNode"/>
+ <generalization xmi:id="ObjectNode-_generalization.0" general="ActivityNode"/>
+ <generalization xmi:id="ObjectNode-_generalization.1" general="TypedElement"/>
<ownedAttribute xmi:id="ObjectNode-inState" name="inState" visibility="public" type="State" association="A_inState_objectNode">
<ownedComment xmi:id="ObjectNode-inState-_ownedComment.0" annotatedElement="ObjectNode-inState">
<body>The required states of the object available at this point in the activity.</body>
@@ -8815,13 +8800,14 @@ memb.isDistinguishableFrom(other, self)))</body>
<ownedComment xmi:id="OpaqueExpression-_ownedComment.1" annotatedElement="OpaqueExpression">
<body>Provides a mechanism for precisely defining the behavior of an opaque expression. An opaque expression is defined by a behavior restricted to return one result.</body>
</ownedComment>
- <ownedRule xmi:id="OpaqueExpression-language_body_size" name="language_body_size" constrainedElement="OpaqueExpression">
- <ownedComment xmi:id="OpaqueExpression-language_body_size-_ownedComment.0" annotatedElement="OpaqueExpression-language_body_size">
- <body>If the language attribute is not empty, then the size of the body and language arrays must be the same.</body>
+ <ownedRule xmi:id="OpaqueExpression-only_return_result_parameters" name="only_return_result_parameters" constrainedElement="OpaqueExpression">
+ <ownedComment xmi:id="OpaqueExpression-only_return_result_parameters-_ownedComment.0" annotatedElement="OpaqueExpression-only_return_result_parameters">
+ <body>The behavior may only have return result parameters.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-language_body_size-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-only_return_result_parameters-_specification">
<language>OCL</language>
- <body>language->notEmpty() implies (body->size() = language->size())</body>
+ <body>self.behavior.notEmpty() implies
+ self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="OpaqueExpression-one_return_result_parameter" name="one_return_result_parameter" constrainedElement="OpaqueExpression">
@@ -8834,14 +8820,13 @@ memb.isDistinguishableFrom(other, self)))</body>
self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="OpaqueExpression-only_return_result_parameters" name="only_return_result_parameters" constrainedElement="OpaqueExpression">
- <ownedComment xmi:id="OpaqueExpression-only_return_result_parameters-_ownedComment.0" annotatedElement="OpaqueExpression-only_return_result_parameters">
- <body>The behavior may only have return result parameters.</body>
+ <ownedRule xmi:id="OpaqueExpression-language_body_size" name="language_body_size" constrainedElement="OpaqueExpression">
+ <ownedComment xmi:id="OpaqueExpression-language_body_size-_ownedComment.0" annotatedElement="OpaqueExpression-language_body_size">
+ <body>If the language attribute is not empty, then the size of the body and language arrays must be the same.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-only_return_result_parameters-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-language_body_size-_specification">
<language>OCL</language>
- <body>self.behavior.notEmpty() implies
- self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()</body>
+ <body>language->notEmpty() implies (body->size() = language->size())</body>
</specification>
</ownedRule>
<generalization xmi:id="OpaqueExpression-_generalization.0" general="ValueSpecification"/>
@@ -8891,18 +8876,18 @@ memb.isDistinguishableFrom(other, self)))</body>
<ownedComment xmi:id="OpaqueExpression-isNonNegative-_ownedComment.0" annotatedElement="OpaqueExpression-isNonNegative">
<body>The query isNonNegative() tells whether an integer expression has a non-negative value.</body>
</ownedComment>
- <ownedRule xmi:id="OpaqueExpression-isNonNegative-pre" name="pre" constrainedElement="OpaqueExpression-isNonNegative">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-isNonNegative-pre-_specification">
- <language>OCL</language>
- <body>self.isIntegral()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="OpaqueExpression-isNonNegative-spec" name="spec" constrainedElement="OpaqueExpression-isNonNegative">
<specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-isNonNegative-spec-_specification">
<language>OCL</language>
<body>result = false</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="OpaqueExpression-isNonNegative-pre" name="pre" constrainedElement="OpaqueExpression-isNonNegative">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="OpaqueExpression-isNonNegative-pre-_specification">
+ <language>OCL</language>
+ <body>self.isIntegral()</body>
+ </specification>
+ </ownedRule>
<ownedParameter xmi:id="OpaqueExpression-isNonNegative-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -8964,13 +8949,13 @@ memb.isDistinguishableFrom(other, self)))</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Operation" name="Operation">
<ownedComment xmi:id="Operation-_ownedComment.0" annotatedElement="Operation">
- <body>Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
+ <body>An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.</body>
</ownedComment>
<ownedComment xmi:id="Operation-_ownedComment.1" annotatedElement="Operation">
<body>An operation may invoke both the execution of method behaviors as well as other behavioral responses.</body>
</ownedComment>
<ownedComment xmi:id="Operation-_ownedComment.2" annotatedElement="Operation">
- <body>An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.</body>
+ <body>Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
</ownedComment>
<ownedRule xmi:id="Operation-at_most_one_return" name="at_most_one_return" constrainedElement="Operation">
<ownedComment xmi:id="Operation-at_most_one_return-_ownedComment.0" annotatedElement="Operation-at_most_one_return">
@@ -8991,27 +8976,27 @@ memb.isDistinguishableFrom(other, self)))</body>
</specification>
</ownedRule>
<generalization xmi:id="Operation-_generalization.0" general="TemplateableElement"/>
- <generalization xmi:id="Operation-_generalization.1" general="ParameterableElement"/>
- <generalization xmi:id="Operation-_generalization.2" general="BehavioralFeature"/>
+ <generalization xmi:id="Operation-_generalization.1" general="BehavioralFeature"/>
+ <generalization xmi:id="Operation-_generalization.2" general="ParameterableElement"/>
<ownedAttribute xmi:id="Operation-bodyCondition" name="bodyCondition" visibility="public" type="Constraint" aggregation="composite" subsettedProperty="Namespace-ownedRule" association="A_bodyCondition_bodyContext">
<ownedComment xmi:id="Operation-bodyCondition-_ownedComment.0" annotatedElement="Operation-bodyCondition">
<body>An optional Constraint on the result values of an invocation of this Operation.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-bodyCondition-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Operation-class" name="class" visibility="public" type="Class" subsettedProperty="Feature-featuringClassifier NamedElement-namespace RedefinableElement-redefinitionContext" association="A_ownedOperation_class">
+ <ownedAttribute xmi:id="Operation-class" name="class" visibility="public" type="Class" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace" association="A_ownedOperation_class">
<ownedComment xmi:id="Operation-class-_ownedComment.0" annotatedElement="Operation-class">
<body>The class that owns the operation.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-class-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Operation-datatype" name="datatype" visibility="public" type="DataType" subsettedProperty="Feature-featuringClassifier NamedElement-namespace RedefinableElement-redefinitionContext" association="A_ownedOperation_datatype">
+ <ownedAttribute xmi:id="Operation-datatype" name="datatype" visibility="public" type="DataType" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace" association="A_ownedOperation_datatype">
<ownedComment xmi:id="Operation-datatype-_ownedComment.0" annotatedElement="Operation-datatype">
<body>The DataType that owns this Operation.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-datatype-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Operation-interface" name="interface" visibility="public" type="Interface" subsettedProperty="Feature-featuringClassifier NamedElement-namespace RedefinableElement-redefinitionContext" association="A_ownedOperation_interface">
+ <ownedAttribute xmi:id="Operation-interface" name="interface" visibility="public" type="Interface" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace" association="A_ownedOperation_interface">
<ownedComment xmi:id="Operation-interface-_ownedComment.0" annotatedElement="Operation-interface">
<body>The Interface that owns this Operation.</body>
</ownedComment>
@@ -9036,20 +9021,20 @@ memb.isDistinguishableFrom(other, self)))</body>
</ownedAttribute>
<ownedAttribute xmi:id="Operation-isUnique" name="isUnique" visibility="public" isReadOnly="true" isDerived="true">
<ownedComment xmi:id="Operation-isUnique-_ownedComment.0" annotatedElement="Operation-isUnique">
- <body>This information is derived from the return result for this Operation.</body>
+ <body>Specifies whether the return parameter is unique or not, if present.</body>
</ownedComment>
<ownedComment xmi:id="Operation-isUnique-_ownedComment.1" annotatedElement="Operation-isUnique">
- <body>Specifies whether the return parameter is unique or not, if present.</body>
+ <body>This information is derived from the return result for this Operation.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="Operation-isUnique-_defaultValue" value="true"/>
</ownedAttribute>
<ownedAttribute xmi:id="Operation-lower" name="lower" visibility="public" isReadOnly="true" isDerived="true">
<ownedComment xmi:id="Operation-lower-_ownedComment.0" annotatedElement="Operation-lower">
- <body>Specifies the lower multiplicity of the return parameter, if present.</body>
+ <body>This information is derived from the return result for this Operation.</body>
</ownedComment>
<ownedComment xmi:id="Operation-lower-_ownedComment.1" annotatedElement="Operation-lower">
- <body>This information is derived from the return result for this Operation.</body>
+ <body>Specifies the lower multiplicity of the return parameter, if present.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-lower-_lowerValue"/>
@@ -9110,10 +9095,10 @@ memb.isDistinguishableFrom(other, self)))</body>
</ownedAttribute>
<ownedAttribute xmi:id="Operation-upper" name="upper" visibility="public" isReadOnly="true" isDerived="true">
<ownedComment xmi:id="Operation-upper-_ownedComment.0" annotatedElement="Operation-upper">
- <body>Specifies the upper multiplicity of the return parameter, if present.</body>
+ <body>This information is derived from the return result for this Operation.</body>
</ownedComment>
<ownedComment xmi:id="Operation-upper-_ownedComment.1" annotatedElement="Operation-upper">
- <body>This information is derived from the return result for this Operation.</body>
+ <body>Specifies the upper multiplicity of the return parameter, if present.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#UnlimitedNatural"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Operation-upper-_lowerValue"/>
@@ -9126,6 +9111,12 @@ memb.isDistinguishableFrom(other, self)))</body>
<ownedComment xmi:id="Operation-isConsistentWith-_ownedComment.1" annotatedElement="Operation-isConsistentWith">
<body>The query isConsistentWith() specifies, for any two Operations in a context in which redefinition is possible, whether redefinition would be consistent in the sense of maintaining type covariance. Other senses of consistency may be required, for example to determine consistency in the sense of contravariance. Users may define alternative queries under names different from 'isConsistentWith()', as for example, users may define a query named 'isContravariantWith()'.</body>
</ownedComment>
+ <ownedRule xmi:id="Operation-isConsistentWith-pre" name="pre" constrainedElement="Operation-isConsistentWith">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Operation-isConsistentWith-pre-_specification">
+ <language>OCL</language>
+ <body>redefinee.isRedefinitionContextValid(self)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Operation-isConsistentWith-spec" name="spec" constrainedElement="Operation-isConsistentWith">
<specification xmi:type="uml:OpaqueExpression" xmi:id="Operation-isConsistentWith-spec-_specification">
<language>OCL</language>
@@ -9136,12 +9127,6 @@ let op : Operation = redefinee.oclAsType(Operation) in
forAll(i |op.ownedParameter->at(1).type.conformsTo(self.ownedParameter->at(i).type))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Operation-isConsistentWith-pre" name="pre" constrainedElement="Operation-isConsistentWith">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Operation-isConsistentWith-pre-_specification">
- <language>OCL</language>
- <body>redefinee.isRedefinitionContextValid(self)</body>
- </specification>
- </ownedRule>
<ownedParameter xmi:id="Operation-isConsistentWith-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -9276,9 +9261,9 @@ let op : Operation = redefinee.oclAsType(Operation) in
<body>self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)</body>
</specification>
</ownedRule>
- <generalization xmi:id="Package-_generalization.0" general="PackageableElement"/>
- <generalization xmi:id="Package-_generalization.1" general="TemplateableElement"/>
- <generalization xmi:id="Package-_generalization.2" general="Namespace"/>
+ <generalization xmi:id="Package-_generalization.0" general="Namespace"/>
+ <generalization xmi:id="Package-_generalization.1" general="PackageableElement"/>
+ <generalization xmi:id="Package-_generalization.2" general="TemplateableElement"/>
<ownedAttribute xmi:id="Package-URI" name="URI" visibility="public">
<ownedComment xmi:id="Package-URI-_ownedComment.0" annotatedElement="Package-URI">
<body>Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.</body>
@@ -9313,7 +9298,7 @@ let op : Operation = redefinee.oclAsType(Operation) in
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-ownedType-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-ownedType-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Package-packageMerge" name="packageMerge" visibility="public" type="PackageMerge" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_packageMerge_receivingPackage">
+ <ownedAttribute xmi:id="Package-packageMerge" name="packageMerge" visibility="public" type="PackageMerge" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_packageMerge_receivingPackage">
<ownedComment xmi:id="Package-packageMerge-_ownedComment.0" annotatedElement="Package-packageMerge">
<body>References the PackageMerges that are owned by this Package.</body>
</ownedComment>
@@ -9327,7 +9312,7 @@ let op : Operation = redefinee.oclAsType(Operation) in
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Package-packagedElement-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Package-packagedElement-_upperValue" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Package-profileApplication" name="profileApplication" visibility="public" type="ProfileApplication" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_profileApplication_applyingPackage">
+ <ownedAttribute xmi:id="Package-profileApplication" name="profileApplication" visibility="public" type="ProfileApplication" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_profileApplication_applyingPackage">
<ownedComment xmi:id="Package-profileApplication-_ownedComment.0" annotatedElement="Package-profileApplication">
<body>References the ProfileApplications that indicate which profiles have been applied to the Package.</body>
</ownedComment>
@@ -9374,12 +9359,6 @@ endif</body>
<ownedComment xmi:id="Package-makesVisible-_ownedComment.0" annotatedElement="Package-makesVisible">
<body>The query makesVisible() defines whether a Package makes an element visible outside itself. Elements with no visibility and elements with public visibility are made visible.</body>
</ownedComment>
- <ownedRule xmi:id="Package-makesVisible-pre" name="pre" constrainedElement="Package-makesVisible">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Package-makesVisible-pre-_specification">
- <language>OCL</language>
- <body>self.member->includes(el)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Package-makesVisible-spec" name="spec" constrainedElement="Package-makesVisible">
<specification xmi:type="uml:OpaqueExpression" xmi:id="Package-makesVisible-spec-_specification">
<language>OCL</language>
@@ -9388,6 +9367,12 @@ endif</body>
(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Package-makesVisible-pre" name="pre" constrainedElement="Package-makesVisible">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Package-makesVisible-pre-_specification">
+ <language>OCL</language>
+ <body>self.member->includes(el)</body>
+ </specification>
+ </ownedRule>
<ownedParameter xmi:id="Package-makesVisible-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -9487,7 +9472,7 @@ endif</body>
<body>Specifies the Package whose members are imported into a Namespace.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="PackageImport-importingNamespace" name="importingNamespace" visibility="public" type="Namespace" subsettedProperty="DirectedRelationship-source Element-owner" association="A_packageImport_importingNamespace">
+ <ownedAttribute xmi:id="PackageImport-importingNamespace" name="importingNamespace" visibility="public" type="Namespace" subsettedProperty="Element-owner DirectedRelationship-source" association="A_packageImport_importingNamespace">
<ownedComment xmi:id="PackageImport-importingNamespace-_ownedComment.0" annotatedElement="PackageImport-importingNamespace">
<body>Specifies the Namespace that imports the members from a Package.</body>
</ownedComment>
@@ -9509,7 +9494,7 @@ endif</body>
<body>References the Package that is to be merged with the receiving package of the PackageMerge.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="PackageMerge-receivingPackage" name="receivingPackage" visibility="public" type="Package" subsettedProperty="DirectedRelationship-source Element-owner" association="A_packageMerge_receivingPackage">
+ <ownedAttribute xmi:id="PackageMerge-receivingPackage" name="receivingPackage" visibility="public" type="Package" subsettedProperty="Element-owner DirectedRelationship-source" association="A_packageMerge_receivingPackage">
<ownedComment xmi:id="PackageMerge-receivingPackage-_ownedComment.0" annotatedElement="PackageMerge-receivingPackage">
<body>References the Package that is being extended with the contents of the merged package of the PackageMerge.</body>
</ownedComment>
@@ -9517,10 +9502,10 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="PackageableElement" name="PackageableElement" isAbstract="true">
<ownedComment xmi:id="PackageableElement-_ownedComment.0" annotatedElement="PackageableElement">
- <body>A packageable element indicates a named element that may be owned directly by a package.</body>
+ <body>Packageable elements are able to serve as a template parameter.</body>
</ownedComment>
<ownedComment xmi:id="PackageableElement-_ownedComment.1" annotatedElement="PackageableElement">
- <body>Packageable elements are able to serve as a template parameter.</body>
+ <body>A packageable element indicates a named element that may be owned directly by a package.</body>
</ownedComment>
<generalization xmi:id="PackageableElement-_generalization.0" general="ParameterableElement"/>
<generalization xmi:id="PackageableElement-_generalization.1" general="NamedElement"/>
@@ -9533,28 +9518,19 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Parameter" name="Parameter">
<ownedComment xmi:id="Parameter-_ownedComment.0" annotatedElement="Parameter">
- <body>A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.</body>
+ <body>Parameters are allowed to be treated as connectable elements.</body>
</ownedComment>
<ownedComment xmi:id="Parameter-_ownedComment.1" annotatedElement="Parameter">
- <body>Parameters have support for streaming, exceptions, and parameter sets.</body>
+ <body>A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.</body>
</ownedComment>
<ownedComment xmi:id="Parameter-_ownedComment.2" annotatedElement="Parameter">
- <body>Parameters are allowed to be treated as connectable elements.</body>
+ <body>Parameters have support for streaming, exceptions, and parameter sets.</body>
</ownedComment>
- <ownedRule xmi:id="Parameter-in_and_out" name="in_and_out" constrainedElement="Parameter">
- <ownedComment xmi:id="Parameter-in_and_out-_ownedComment.0" annotatedElement="Parameter-in_and_out">
- <body>Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-in_and_out-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Parameter-not_exception" name="not_exception" constrainedElement="Parameter">
- <ownedComment xmi:id="Parameter-not_exception-_ownedComment.0" annotatedElement="Parameter-not_exception">
- <body>An input parameter cannot be an exception.</body>
+ <ownedRule xmi:id="Parameter-reentrant_behaviors" name="reentrant_behaviors" constrainedElement="Parameter">
+ <ownedComment xmi:id="Parameter-reentrant_behaviors-_ownedComment.0" annotatedElement="Parameter-reentrant_behaviors">
+ <body>Reentrant behaviors cannot have stream parameters.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-not_exception-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-reentrant_behaviors-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9568,11 +9544,20 @@ endif</body>
<body>self.end.notEmpty() implies self.collaboration.notEmpty()</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Parameter-reentrant_behaviors" name="reentrant_behaviors" constrainedElement="Parameter">
- <ownedComment xmi:id="Parameter-reentrant_behaviors-_ownedComment.0" annotatedElement="Parameter-reentrant_behaviors">
- <body>Reentrant behaviors cannot have stream parameters.</body>
+ <ownedRule xmi:id="Parameter-not_exception" name="not_exception" constrainedElement="Parameter">
+ <ownedComment xmi:id="Parameter-not_exception-_ownedComment.0" annotatedElement="Parameter-not_exception">
+ <body>An input parameter cannot be an exception.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-reentrant_behaviors-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-not_exception-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Parameter-in_and_out" name="in_and_out" constrainedElement="Parameter">
+ <ownedComment xmi:id="Parameter-in_and_out-_ownedComment.0" annotatedElement="Parameter-in_and_out">
+ <body>Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Parameter-in_and_out-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9660,11 +9645,11 @@ endif</body>
<ownedComment xmi:id="ParameterSet-_ownedComment.0" annotatedElement="ParameterSet">
<body>A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use.</body>
</ownedComment>
- <ownedRule xmi:id="ParameterSet-same_parameterized_entity" name="same_parameterized_entity" constrainedElement="ParameterSet">
- <ownedComment xmi:id="ParameterSet-same_parameterized_entity-_ownedComment.0" annotatedElement="ParameterSet-same_parameterized_entity">
- <body>The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.</body>
+ <ownedRule xmi:id="ParameterSet-two_parameter_sets" name="two_parameter_sets" constrainedElement="ParameterSet">
+ <ownedComment xmi:id="ParameterSet-two_parameter_sets-_ownedComment.0" annotatedElement="ParameterSet-two_parameter_sets">
+ <body>Two parameter sets cannot have exactly the same set of parameters.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ParameterSet-same_parameterized_entity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ParameterSet-two_parameter_sets-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9678,11 +9663,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ParameterSet-two_parameter_sets" name="two_parameter_sets" constrainedElement="ParameterSet">
- <ownedComment xmi:id="ParameterSet-two_parameter_sets-_ownedComment.0" annotatedElement="ParameterSet-two_parameter_sets">
- <body>Two parameter sets cannot have exactly the same set of parameters.</body>
+ <ownedRule xmi:id="ParameterSet-same_parameterized_entity" name="same_parameterized_entity" constrainedElement="ParameterSet">
+ <ownedComment xmi:id="ParameterSet-same_parameterized_entity-_ownedComment.0" annotatedElement="ParameterSet-same_parameterized_entity">
+ <body>The parameters in a parameter set must all be inputs or all be outputs of the same parameterized entity, and the parameter set is owned by that entity.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ParameterSet-two_parameter_sets-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ParameterSet-same_parameterized_entity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9753,11 +9738,11 @@ endif</body>
<ownedComment xmi:id="PartDecomposition-_ownedComment.0" annotatedElement="PartDecomposition">
<body>A part decomposition is a description of the internal interactions of one lifeline relative to an interaction.</body>
</ownedComment>
- <ownedRule xmi:id="PartDecomposition-commutativity_of_decomposition" name="commutativity_of_decomposition" constrainedElement="PartDecomposition">
- <ownedComment xmi:id="PartDecomposition-commutativity_of_decomposition-_ownedComment.0" annotatedElement="PartDecomposition-commutativity_of_decomposition">
- <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)</body>
+ <ownedRule xmi:id="PartDecomposition-parts_of_internal_structures" name="parts_of_internal_structures" constrainedElement="PartDecomposition">
+ <ownedComment xmi:id="PartDecomposition-parts_of_internal_structures-_ownedComment.0" annotatedElement="PartDecomposition-parts_of_internal_structures">
+ <body>PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="PartDecomposition-commutativity_of_decomposition-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="PartDecomposition-parts_of_internal_structures-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9771,11 +9756,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="PartDecomposition-parts_of_internal_structures" name="parts_of_internal_structures" constrainedElement="PartDecomposition">
- <ownedComment xmi:id="PartDecomposition-parts_of_internal_structures-_ownedComment.0" annotatedElement="PartDecomposition-parts_of_internal_structures">
- <body>PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.</body>
+ <ownedRule xmi:id="PartDecomposition-commutativity_of_decomposition" name="commutativity_of_decomposition" constrainedElement="PartDecomposition">
+ <ownedComment xmi:id="PartDecomposition-commutativity_of_decomposition-_ownedComment.0" annotatedElement="PartDecomposition-commutativity_of_decomposition">
+ <body>Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an InteractionUse (say) U that covers L. According to the constraint above U will have a counterpart CU within D. Within the Interaction referenced by U, L should also be decomposed, and the decomposition should reference CU. (This rule is called commutativity of decomposition)</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="PartDecomposition-parts_of_internal_structures-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="PartDecomposition-commutativity_of_decomposition-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9784,10 +9769,10 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Pin" name="Pin" isAbstract="true">
<ownedComment xmi:id="Pin-_ownedComment.0" annotatedElement="Pin">
- <body>A pin is an object node for inputs and outputs to actions.</body>
+ <body>A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.</body>
</ownedComment>
<ownedComment xmi:id="Pin-_ownedComment.1" annotatedElement="Pin">
- <body>A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.</body>
+ <body>A pin is an object node for inputs and outputs to actions.</body>
</ownedComment>
<ownedRule xmi:id="Pin-control_pins" name="control_pins" constrainedElement="Pin">
<ownedComment xmi:id="Pin-control_pins-_ownedComment.0" annotatedElement="Pin-control_pins">
@@ -9798,8 +9783,8 @@ endif</body>
<body>isControl implies isControlType</body>
</specification>
</ownedRule>
- <generalization xmi:id="Pin-_generalization.0" general="ObjectNode"/>
- <generalization xmi:id="Pin-_generalization.1" general="MultiplicityElement"/>
+ <generalization xmi:id="Pin-_generalization.0" general="MultiplicityElement"/>
+ <generalization xmi:id="Pin-_generalization.1" general="ObjectNode"/>
<ownedAttribute xmi:id="Pin-isControl" name="isControl" visibility="public">
<ownedComment xmi:id="Pin-isControl-_ownedComment.0" annotatedElement="Pin-isControl">
<body>Tells whether the pins provide data to the actions, or just controls when it executes it.</body>
@@ -9810,16 +9795,16 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Port" name="Port">
<ownedComment xmi:id="Port-_ownedComment.0" annotatedElement="Port">
- <body>A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.</body>
+ <body>A port has an associated protocol state machine.</body>
</ownedComment>
<ownedComment xmi:id="Port-_ownedComment.1" annotatedElement="Port">
- <body>A port has an associated protocol state machine.</body>
+ <body>A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.</body>
</ownedComment>
- <ownedRule xmi:id="Port-port_destroyed" name="port_destroyed" constrainedElement="Port">
- <ownedComment xmi:id="Port-port_destroyed-_ownedComment.0" annotatedElement="Port-port_destroyed">
- <body>When a port is destroyed, all connectors attached to this port will be destroyed also.</body>
+ <ownedRule xmi:id="Port-default_value" name="default_value" constrainedElement="Port">
+ <ownedComment xmi:id="Port-default_value-_ownedComment.0" annotatedElement="Port-default_value">
+ <body>A defaultValue for port cannot be specified when the type of the Port is an Interface</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Port-port_destroyed-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Port-default_value-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9833,11 +9818,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Port-default_value" name="default_value" constrainedElement="Port">
- <ownedComment xmi:id="Port-default_value-_ownedComment.0" annotatedElement="Port-default_value">
- <body>A defaultValue for port cannot be specified when the type of the Port is an Interface</body>
+ <ownedRule xmi:id="Port-port_destroyed" name="port_destroyed" constrainedElement="Port">
+ <ownedComment xmi:id="Port-port_destroyed-_ownedComment.0" annotatedElement="Port-port_destroyed">
+ <body>When a port is destroyed, all connectors attached to this port will be destroyed also.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Port-default_value-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Port-port_destroyed-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -9979,7 +9964,7 @@ endif</body>
<body>References the Profiles that are applied to a Package through this ProfileApplication.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="ProfileApplication-applyingPackage" name="applyingPackage" visibility="public" type="Package" subsettedProperty="DirectedRelationship-source Element-owner" association="A_profileApplication_applyingPackage">
+ <ownedAttribute xmi:id="ProfileApplication-applyingPackage" name="applyingPackage" visibility="public" type="Package" subsettedProperty="Element-owner DirectedRelationship-source" association="A_profileApplication_applyingPackage">
<ownedComment xmi:id="ProfileApplication-applyingPackage-_ownedComment.0" annotatedElement="ProfileApplication-applyingPackage">
<body>The package that owns the profile application.</body>
</ownedComment>
@@ -9997,36 +9982,36 @@ endif</body>
<body>Property represents a declared state of one or more instances in terms of a named relationship to a value or values. When a property is an attribute of a classifier, the value or values are related to the instance of the classifier by being held in slots of the instance. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. The range of valid values represented by the property can be controlled by setting the property's type.</body>
</ownedComment>
<ownedComment xmi:id="Property-_ownedComment.1" annotatedElement="Property">
- <body>A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.</body>
+ <body>A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.</body>
</ownedComment>
<ownedComment xmi:id="Property-_ownedComment.2" annotatedElement="Property">
- <body>Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
+ <body>A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.</body>
</ownedComment>
<ownedComment xmi:id="Property-_ownedComment.3" annotatedElement="Property">
- <body>A property represents a set of instances that are owned by a containing classifier instance.</body>
+ <body>Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>
</ownedComment>
<ownedComment xmi:id="Property-_ownedComment.4" annotatedElement="Property">
- <body>A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.</body>
+ <body>A property represents a set of instances that are owned by a containing classifier instance.</body>
</ownedComment>
- <ownedRule xmi:id="Property-subsetting_context_conforms" name="subsetting_context_conforms" constrainedElement="Property">
- <ownedComment xmi:id="Property-subsetting_context_conforms-_ownedComment.0" annotatedElement="Property-subsetting_context_conforms">
- <body>Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.</body>
+ <ownedRule xmi:id="Property-subsetted_property_names" name="subsetted_property_names" constrainedElement="Property">
+ <ownedComment xmi:id="Property-subsetted_property_names-_ownedComment.0" annotatedElement="Property-subsetted_property_names">
+ <body>A property may not subset a property with the same name.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetting_context_conforms-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetted_property_names-_specification">
<language>OCL</language>
- <body>self.subsettedProperty->notEmpty() implies
- (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |
- self.subsettedProperty->forAll(sp |
- sp.subsettingContext()->exists(c | sc.conformsTo(c)))))</body>
+ <body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Property-derived_union_is_read_only" name="derived_union_is_read_only" constrainedElement="Property">
- <ownedComment xmi:id="Property-derived_union_is_read_only-_ownedComment.0" annotatedElement="Property-derived_union_is_read_only">
- <body>A derived union is read only.</body>
+ <ownedRule xmi:id="Property-subsetting_rules" name="subsetting_rules" constrainedElement="Property">
+ <ownedComment xmi:id="Property-subsetting_rules-_ownedComment.0" annotatedElement="Property-subsetting_rules">
+ <body>A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-derived_union_is_read_only-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetting_rules-_specification">
<language>OCL</language>
- <body>isDerivedUnion implies isReadOnly</body>
+ <body>self.subsettedProperty->forAll(sp |
+ self.type.conformsTo(sp.type) and
+ ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies
+ self.upperBound()&lt;=sp.upperBound() ))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Property-multiplicity_of_composite" name="multiplicity_of_composite" constrainedElement="Property">
@@ -10041,6 +10026,16 @@ endif</body>
<body>isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Property-binding_to_attribute" name="binding_to_attribute" constrainedElement="Property">
+ <ownedComment xmi:id="Property-binding_to_attribute-_ownedComment.0" annotatedElement="Property-binding_to_attribute">
+ <body>A binding of a property template parameter representing an attribute must be to an attribute.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-binding_to_attribute-_specification">
+ <language>OCL</language>
+ <body>(isAttribute(self) and (templateParameterSubstitution->notEmpty())
+ implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Property-redefined_property_inherited" name="redefined_property_inherited" constrainedElement="Property">
<ownedComment xmi:id="Property-redefined_property_inherited-_ownedComment.0" annotatedElement="Property-redefined_property_inherited">
<body>A redefined property must be inherited from a more general classifier containing the redefining property.</body>
@@ -10054,26 +10049,25 @@ endif</body>
fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Property-subsetting_rules" name="subsetting_rules" constrainedElement="Property">
- <ownedComment xmi:id="Property-subsetting_rules-_ownedComment.0" annotatedElement="Property-subsetting_rules">
- <body>A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.</body>
+ <ownedRule xmi:id="Property-subsetting_context_conforms" name="subsetting_context_conforms" constrainedElement="Property">
+ <ownedComment xmi:id="Property-subsetting_context_conforms-_ownedComment.0" annotatedElement="Property-subsetting_context_conforms">
+ <body>Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetting_rules-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetting_context_conforms-_specification">
<language>OCL</language>
- <body>self.subsettedProperty->forAll(sp |
- self.type.conformsTo(sp.type) and
- ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies
- self.upperBound()&lt;=sp.upperBound() ))</body>
+ <body>self.subsettedProperty->notEmpty() implies
+ (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |
+ self.subsettedProperty->forAll(sp |
+ sp.subsettingContext()->exists(c | sc.conformsTo(c)))))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Property-binding_to_attribute" name="binding_to_attribute" constrainedElement="Property">
- <ownedComment xmi:id="Property-binding_to_attribute-_ownedComment.0" annotatedElement="Property-binding_to_attribute">
- <body>A binding of a property template parameter representing an attribute must be to an attribute.</body>
+ <ownedRule xmi:id="Property-deployment_target" name="deployment_target" constrainedElement="Property">
+ <ownedComment xmi:id="Property-deployment_target-_ownedComment.0" annotatedElement="Property-deployment_target">
+ <body>A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-binding_to_attribute-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-deployment_target-_specification">
<language>OCL</language>
- <body>(isAttribute(self) and (templateParameterSubstitution->notEmpty())
- implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))</body>
+ <body>true</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Property-derived_union_is_derived" name="derived_union_is_derived" constrainedElement="Property">
@@ -10085,27 +10079,18 @@ endif</body>
<body>isDerivedUnion implies isDerived</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Property-deployment_target" name="deployment_target" constrainedElement="Property">
- <ownedComment xmi:id="Property-deployment_target-_ownedComment.0" annotatedElement="Property-deployment_target">
- <body>A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-deployment_target-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Property-subsetted_property_names" name="subsetted_property_names" constrainedElement="Property">
- <ownedComment xmi:id="Property-subsetted_property_names-_ownedComment.0" annotatedElement="Property-subsetted_property_names">
- <body>A property may not subset a property with the same name.</body>
+ <ownedRule xmi:id="Property-derived_union_is_read_only" name="derived_union_is_read_only" constrainedElement="Property">
+ <ownedComment xmi:id="Property-derived_union_is_read_only-_ownedComment.0" annotatedElement="Property-derived_union_is_read_only">
+ <body>A derived union is read only.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-subsetted_property_names-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Property-derived_union_is_read_only-_specification">
<language>OCL</language>
- <body>true</body>
+ <body>isDerivedUnion implies isReadOnly</body>
</specification>
</ownedRule>
- <generalization xmi:id="Property-_generalization.0" general="ConnectableElement"/>
- <generalization xmi:id="Property-_generalization.1" general="DeploymentTarget"/>
- <generalization xmi:id="Property-_generalization.2" general="StructuralFeature"/>
+ <generalization xmi:id="Property-_generalization.0" general="StructuralFeature"/>
+ <generalization xmi:id="Property-_generalization.1" general="ConnectableElement"/>
+ <generalization xmi:id="Property-_generalization.2" general="DeploymentTarget"/>
<ownedAttribute xmi:id="Property-aggregation" name="aggregation" visibility="public" type="AggregationKind">
<ownedComment xmi:id="Property-aggregation-_ownedComment.0" annotatedElement="Property-aggregation">
<body>Specifies the kind of aggregation that applies to the Property.</body>
@@ -10124,16 +10109,16 @@ endif</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-associationEnd-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Property-class" name="class" visibility="public" type="Class" subsettedProperty="NamedElement-namespace A_ownedAttribute_structuredClassifier-structuredClassifier A_attribute_classifier-classifier" association="A_ownedAttribute_class">
+ <ownedAttribute xmi:id="Property-class" name="class" visibility="public" type="Class" subsettedProperty="A_attribute_classifier-classifier A_ownedAttribute_structuredClassifier-structuredClassifier NamedElement-namespace" association="A_ownedAttribute_class">
<ownedComment xmi:id="Property-class-_ownedComment.0" annotatedElement="Property-class">
- <body>References the Class that owns the Property.</body>
+ <body>References the Class that owns the Property.</body>
</ownedComment>
<ownedComment xmi:id="Property-class-_ownedComment.1" annotatedElement="Property-class">
- <body>References the Class that owns the Property.</body>
+ <body>References the Class that owns the Property.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-class-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Property-datatype" name="datatype" visibility="public" type="DataType" subsettedProperty="NamedElement-namespace A_attribute_classifier-classifier" association="A_ownedAttribute_datatype">
+ <ownedAttribute xmi:id="Property-datatype" name="datatype" visibility="public" type="DataType" subsettedProperty="A_attribute_classifier-classifier NamedElement-namespace" association="A_ownedAttribute_datatype">
<ownedComment xmi:id="Property-datatype-_ownedComment.0" annotatedElement="Property-datatype">
<body>The DataType that owns this Property.</body>
</ownedComment>
@@ -10141,10 +10126,10 @@ endif</body>
</ownedAttribute>
<ownedAttribute xmi:id="Property-default" name="default" visibility="public" isDerived="true">
<ownedComment xmi:id="Property-default-_ownedComment.0" annotatedElement="Property-default">
- <body>A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.</body>
+ <body>Specifies a String that represents a value to be used when no argument is supplied for the Property.</body>
</ownedComment>
<ownedComment xmi:id="Property-default-_ownedComment.1" annotatedElement="Property-default">
- <body>Specifies a String that represents a value to be used when no argument is supplied for the Property.</body>
+ <body>A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-default-_lowerValue"/>
@@ -10155,7 +10140,7 @@ endif</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-defaultValue-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Property-interface" name="interface" visibility="public" type="Interface" subsettedProperty="NamedElement-namespace A_attribute_classifier-classifier" association="A_ownedAttribute_interface">
+ <ownedAttribute xmi:id="Property-interface" name="interface" visibility="public" type="Interface" subsettedProperty="A_attribute_classifier-classifier NamedElement-namespace" association="A_ownedAttribute_interface">
<ownedComment xmi:id="Property-interface-_ownedComment.0" annotatedElement="Property-interface">
<body>References the Interface that owns the Property</body>
</ownedComment>
@@ -10173,10 +10158,10 @@ endif</body>
</ownedAttribute>
<ownedAttribute xmi:id="Property-isDerived" name="isDerived" visibility="public">
<ownedComment xmi:id="Property-isDerived-_ownedComment.0" annotatedElement="Property-isDerived">
- <body>Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.</body>
+ <body>If isDerived is true, the value of the attribute is derived from information elsewhere.</body>
</ownedComment>
<ownedComment xmi:id="Property-isDerived-_ownedComment.1" annotatedElement="Property-isDerived">
- <body>If isDerived is true, the value of the attribute is derived from information elsewhere.</body>
+ <body>Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="Property-isDerived-_defaultValue"/>
@@ -10197,10 +10182,10 @@ endif</body>
</ownedAttribute>
<ownedAttribute xmi:id="Property-isReadOnly" name="isReadOnly" visibility="public" redefinedProperty="StructuralFeature-isReadOnly">
<ownedComment xmi:id="Property-isReadOnly-_ownedComment.0" annotatedElement="Property-isReadOnly">
- <body>If isReadOnly is true, the attribute may not be written to after initialization.</body>
+ <body>If true, the attribute may only be read, and not written.</body>
</ownedComment>
<ownedComment xmi:id="Property-isReadOnly-_ownedComment.1" annotatedElement="Property-isReadOnly">
- <body>If true, the attribute may only be read, and not written.</body>
+ <body>If isReadOnly is true, the attribute may not be written to after initialization.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="Property-isReadOnly-_defaultValue"/>
@@ -10211,7 +10196,7 @@ endif</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Property-opposite-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="Property-owningAssociation" name="owningAssociation" visibility="public" type="Association" subsettedProperty="Feature-featuringClassifier NamedElement-namespace Property-association RedefinableElement-redefinitionContext" association="A_ownedEnd_owningAssociation">
+ <ownedAttribute xmi:id="Property-owningAssociation" name="owningAssociation" visibility="public" type="Association" subsettedProperty="Feature-featuringClassifier RedefinableElement-redefinitionContext NamedElement-namespace Property-association" association="A_ownedEnd_owningAssociation">
<ownedComment xmi:id="Property-owningAssociation-_ownedComment.0" annotatedElement="Property-owningAssociation">
<body>References the owning association of this property, if any.</body>
</ownedComment>
@@ -10386,7 +10371,7 @@ endif</body>
<body>Specifies the protocol state machine to which the specific state machine conforms.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="ProtocolConformance-specificMachine" name="specificMachine" visibility="public" type="ProtocolStateMachine" subsettedProperty="DirectedRelationship-source Element-owner" association="A_conformance_specificMachine">
+ <ownedAttribute xmi:id="ProtocolConformance-specificMachine" name="specificMachine" visibility="public" type="ProtocolStateMachine" subsettedProperty="Element-owner DirectedRelationship-source" association="A_conformance_specificMachine">
<ownedComment xmi:id="ProtocolConformance-specificMachine-_ownedComment.0" annotatedElement="ProtocolConformance-specificMachine">
<body>Specifies the state machine which conforms to the general state machine.</body>
</ownedComment>
@@ -10396,13 +10381,24 @@ endif</body>
<ownedComment xmi:id="ProtocolStateMachine-_ownedComment.0" annotatedElement="ProtocolStateMachine">
<body>A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier's operations. A protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations which carry the transitions. In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which an instance progresses during its existence.</body>
</ownedComment>
- <ownedRule xmi:id="ProtocolStateMachine-classifier_context" name="classifier_context" constrainedElement="ProtocolStateMachine">
- <ownedComment xmi:id="ProtocolStateMachine-classifier_context-_ownedComment.0" annotatedElement="ProtocolStateMachine-classifier_context">
- <body>A protocol state machine must only have a classifier context, not a behavioral feature context.</body>
+ <ownedRule xmi:id="ProtocolStateMachine-entry_exit_do" name="entry_exit_do" constrainedElement="ProtocolStateMachine">
+ <ownedComment xmi:id="ProtocolStateMachine-entry_exit_do-_ownedComment.0" annotatedElement="ProtocolStateMachine-entry_exit_do">
+ <body>The states of a protocol state machine cannot have entry, exit, or do activity actions.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-classifier_context-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-entry_exit_do-_specification">
<language>OCL</language>
- <body>(not context->isEmpty( )) and specification->isEmpty()</body>
+ <body>region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies
+(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))
+</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="ProtocolStateMachine-protocol_transitions" name="protocol_transitions" constrainedElement="ProtocolStateMachine">
+ <ownedComment xmi:id="ProtocolStateMachine-protocol_transitions-_ownedComment.0" annotatedElement="ProtocolStateMachine-protocol_transitions">
+ <body>All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-protocol_transitions-_specification">
+ <language>OCL</language>
+ <body>region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ProtocolStateMachine-deep_or_shallow_history" name="deep_or_shallow_history" constrainedElement="ProtocolStateMachine">
@@ -10416,15 +10412,13 @@ endif</body>
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ProtocolStateMachine-entry_exit_do" name="entry_exit_do" constrainedElement="ProtocolStateMachine">
- <ownedComment xmi:id="ProtocolStateMachine-entry_exit_do-_ownedComment.0" annotatedElement="ProtocolStateMachine-entry_exit_do">
- <body>The states of a protocol state machine cannot have entry, exit, or do activity actions.</body>
+ <ownedRule xmi:id="ProtocolStateMachine-classifier_context" name="classifier_context" constrainedElement="ProtocolStateMachine">
+ <ownedComment xmi:id="ProtocolStateMachine-classifier_context-_ownedComment.0" annotatedElement="ProtocolStateMachine-classifier_context">
+ <body>A protocol state machine must only have a classifier context, not a behavioral feature context.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-entry_exit_do-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-classifier_context-_specification">
<language>OCL</language>
- <body>region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies
-(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))
-</body>
+ <body>(not context->isEmpty( )) and specification->isEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ProtocolStateMachine-ports_connected" name="ports_connected" constrainedElement="ProtocolStateMachine">
@@ -10436,17 +10430,8 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ProtocolStateMachine-protocol_transitions" name="protocol_transitions" constrainedElement="ProtocolStateMachine">
- <ownedComment xmi:id="ProtocolStateMachine-protocol_transitions-_ownedComment.0" annotatedElement="ProtocolStateMachine-protocol_transitions">
- <body>All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ProtocolStateMachine-protocol_transitions-_specification">
- <language>OCL</language>
- <body>region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))</body>
- </specification>
- </ownedRule>
<generalization xmi:id="ProtocolStateMachine-_generalization.0" general="StateMachine"/>
- <ownedAttribute xmi:id="ProtocolStateMachine-conformance" name="conformance" visibility="public" type="ProtocolConformance" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_conformance_specificMachine">
+ <ownedAttribute xmi:id="ProtocolStateMachine-conformance" name="conformance" visibility="public" type="ProtocolConformance" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_conformance_specificMachine">
<ownedComment xmi:id="ProtocolStateMachine-conformance-_ownedComment.0" annotatedElement="ProtocolStateMachine-conformance">
<body>Conformance between protocol state machines.</body>
</ownedComment>
@@ -10525,6 +10510,28 @@ endif</body>
<ownedComment xmi:id="Pseudostate-_ownedComment.0" annotatedElement="Pseudostate">
<body>A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph.</body>
</ownedComment>
+ <ownedRule xmi:id="Pseudostate-junction_vertex" name="junction_vertex" constrainedElement="Pseudostate">
+ <ownedComment xmi:id="Pseudostate-junction_vertex-_ownedComment.0" annotatedElement="Pseudostate-junction_vertex">
+ <body>In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-junction_vertex-_specification">
+ <language>OCL</language>
+ <body>(self.kind = #junction) implies
+((self.incoming->size >= 1) and (self.outgoing->size >= 1))
+</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Pseudostate-history_vertices" name="history_vertices" constrainedElement="Pseudostate">
+ <ownedComment xmi:id="Pseudostate-history_vertices-_ownedComment.0" annotatedElement="Pseudostate-history_vertices">
+ <body>History vertices can have at most one outgoing transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-history_vertices-_specification">
+ <language>OCL</language>
+ <body>((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies
+(self.outgoing->size &lt;= 1)
+</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Pseudostate-transitions_outgoing" name="transitions_outgoing" constrainedElement="Pseudostate">
<ownedComment xmi:id="Pseudostate-transitions_outgoing-_ownedComment.0" annotatedElement="Pseudostate-transitions_outgoing">
<body>All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.</body>
@@ -10536,17 +10543,6 @@ endif</body>
(self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Pseudostate-choice_vertex" name="choice_vertex" constrainedElement="Pseudostate">
- <ownedComment xmi:id="Pseudostate-choice_vertex-_ownedComment.0" annotatedElement="Pseudostate-choice_vertex">
- <body>In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-choice_vertex-_specification">
- <language>OCL</language>
- <body>(self.kind = #choice) implies
-((self.incoming->size >= 1) and (self.outgoing->size >= 1))
-</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Pseudostate-outgoing_from_initial" name="outgoing_from_initial" constrainedElement="Pseudostate">
<ownedComment xmi:id="Pseudostate-outgoing_from_initial-_ownedComment.0" annotatedElement="Pseudostate-outgoing_from_initial">
<body>The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.</body>
@@ -10557,6 +10553,17 @@ endif</body>
and self.outgoing.trigger->isEmpty())</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="Pseudostate-fork_vertex" name="fork_vertex" constrainedElement="Pseudostate">
+ <ownedComment xmi:id="Pseudostate-fork_vertex-_ownedComment.0" annotatedElement="Pseudostate-fork_vertex">
+ <body>In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-fork_vertex-_specification">
+ <language>OCL</language>
+ <body>(self.kind = #fork) implies
+((self.incoming->size = 1) and (self.outgoing->size >= 2))
+</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Pseudostate-join_vertex" name="join_vertex" constrainedElement="Pseudostate">
<ownedComment xmi:id="Pseudostate-join_vertex-_ownedComment.0" annotatedElement="Pseudostate-join_vertex">
<body>In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.</body>
@@ -10568,28 +10575,17 @@ endif</body>
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Pseudostate-junction_vertex" name="junction_vertex" constrainedElement="Pseudostate">
- <ownedComment xmi:id="Pseudostate-junction_vertex-_ownedComment.0" annotatedElement="Pseudostate-junction_vertex">
- <body>In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.</body>
+ <ownedRule xmi:id="Pseudostate-choice_vertex" name="choice_vertex" constrainedElement="Pseudostate">
+ <ownedComment xmi:id="Pseudostate-choice_vertex-_ownedComment.0" annotatedElement="Pseudostate-choice_vertex">
+ <body>In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-junction_vertex-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-choice_vertex-_specification">
<language>OCL</language>
- <body>(self.kind = #junction) implies
+ <body>(self.kind = #choice) implies
((self.incoming->size >= 1) and (self.outgoing->size >= 1))
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Pseudostate-history_vertices" name="history_vertices" constrainedElement="Pseudostate">
- <ownedComment xmi:id="Pseudostate-history_vertices-_ownedComment.0" annotatedElement="Pseudostate-history_vertices">
- <body>History vertices can have at most one outgoing transition.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-history_vertices-_specification">
- <language>OCL</language>
- <body>((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies
-(self.outgoing->size &lt;= 1)
-</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Pseudostate-initial_vertex" name="initial_vertex" constrainedElement="Pseudostate">
<ownedComment xmi:id="Pseudostate-initial_vertex-_ownedComment.0" annotatedElement="Pseudostate-initial_vertex">
<body>An initial vertex can have at most one outgoing transition.</body>
@@ -10599,17 +10595,6 @@ endif</body>
<body>(self.kind = #initial) implies (self.outgoing->size &lt;= 1)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Pseudostate-fork_vertex" name="fork_vertex" constrainedElement="Pseudostate">
- <ownedComment xmi:id="Pseudostate-fork_vertex-_ownedComment.0" annotatedElement="Pseudostate-fork_vertex">
- <body>In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Pseudostate-fork_vertex-_specification">
- <language>OCL</language>
- <body>(self.kind = #fork) implies
-((self.incoming->size = 1) and (self.outgoing->size >= 2))
-</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Pseudostate-transitions_incoming" name="transitions_incoming" constrainedElement="Pseudostate">
<ownedComment xmi:id="Pseudostate-transitions_incoming-_ownedComment.0" annotatedElement="Pseudostate-transitions_incoming">
<body>All transitions incoming a join vertex must originate in different regions of an orthogonal state.</body>
@@ -10645,6 +10630,15 @@ endif</body>
<ownedComment xmi:id="QualifierValue-_ownedComment.0" annotatedElement="QualifierValue">
<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="QualifierValue-qualifier_attribute" name="qualifier_attribute" constrainedElement="QualifierValue">
+ <ownedComment xmi:id="QualifierValue-qualifier_attribute-_ownedComment.0" annotatedElement="QualifierValue-qualifier_attribute">
+ <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="QualifierValue-qualifier_attribute-_specification">
+ <language>OCL</language>
+ <body>self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="QualifierValue-multiplicity_of_qualifier" name="multiplicity_of_qualifier" constrainedElement="QualifierValue">
<ownedComment xmi:id="QualifierValue-multiplicity_of_qualifier-_ownedComment.0" annotatedElement="QualifierValue-multiplicity_of_qualifier">
<body>The multiplicity of the qualifier value input pin is &quot;1..1&quot;.</body>
@@ -10663,15 +10657,6 @@ endif</body>
<body>self.value.type = self.qualifier.type</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="QualifierValue-qualifier_attribute" name="qualifier_attribute" constrainedElement="QualifierValue">
- <ownedComment xmi:id="QualifierValue-qualifier_attribute-_ownedComment.0" annotatedElement="QualifierValue-qualifier_attribute">
- <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="QualifierValue-qualifier_attribute-_specification">
- <language>OCL</language>
- <body>self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)</body>
- </specification>
- </ownedRule>
<generalization xmi:id="QualifierValue-_generalization.0" general="Element"/>
<ownedAttribute xmi:id="QualifierValue-qualifier" name="qualifier" visibility="public" type="Property" association="A_qualifier_qualifierValue">
<ownedComment xmi:id="QualifierValue-qualifier-_ownedComment.0" annotatedElement="QualifierValue-qualifier">
@@ -10809,6 +10794,15 @@ and self.result.ordering = openend.ordering
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ReadLinkAction-one_open_end" name="one_open_end" constrainedElement="ReadLinkAction">
+ <ownedComment xmi:id="ReadLinkAction-one_open_end-_ownedComment.0" annotatedElement="ReadLinkAction-one_open_end">
+ <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="ReadLinkAction-one_open_end-_specification">
+ <language>OCL</language>
+ <body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="ReadLinkAction-compatible_multiplicity" name="compatible_multiplicity" constrainedElement="ReadLinkAction">
<ownedComment xmi:id="ReadLinkAction-compatible_multiplicity-_ownedComment.0" annotatedElement="ReadLinkAction-compatible_multiplicity">
<body>The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.</body>
@@ -10820,6 +10814,17 @@ openend.multiplicity.compatibleWith(self.result.multiplicity)
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ReadLinkAction-navigable_open_end" name="navigable_open_end" constrainedElement="ReadLinkAction">
+ <ownedComment xmi:id="ReadLinkAction-navigable_open_end-_ownedComment.0" annotatedElement="ReadLinkAction-navigable_open_end">
+ <body>The open end must be navigable.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkAction-navigable_open_end-_specification">
+ <language>OCL</language>
+ <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
+openend.isNavigable()
+</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="ReadLinkAction-visibility" name="visibility" constrainedElement="ReadLinkAction">
<ownedComment xmi:id="ReadLinkAction-visibility-_ownedComment.0" annotatedElement="ReadLinkAction-visibility">
<body>Visibility of the open end must allow access to the object performing the action.</body>
@@ -10836,26 +10841,6 @@ and host.allSupertypes->includes(oed.end.participant))))
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkAction-one_open_end" name="one_open_end" constrainedElement="ReadLinkAction">
- <ownedComment xmi:id="ReadLinkAction-one_open_end-_ownedComment.0" annotatedElement="ReadLinkAction-one_open_end">
- <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="ReadLinkAction-one_open_end-_specification">
- <language>OCL</language>
- <body>self.endData->select(ed | ed.value->size() = 0)->size() = 1</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="ReadLinkAction-navigable_open_end" name="navigable_open_end" constrainedElement="ReadLinkAction">
- <ownedComment xmi:id="ReadLinkAction-navigable_open_end-_ownedComment.0" annotatedElement="ReadLinkAction-navigable_open_end">
- <body>The open end must be navigable.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkAction-navigable_open_end-_specification">
- <language>OCL</language>
- <body>let openend : Property = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in
-openend.isNavigable()
-</body>
- </specification>
- </ownedRule>
<generalization xmi:id="ReadLinkAction-_generalization.0" general="LinkAction"/>
<ownedAttribute xmi:id="ReadLinkAction-result" name="result" visibility="public" type="OutputPin" aggregation="composite" subsettedProperty="Action-output" association="A_result_readLinkAction">
<ownedComment xmi:id="ReadLinkAction-result-_ownedComment.0" annotatedElement="ReadLinkAction-result">
@@ -10867,13 +10852,13 @@ openend.isNavigable()
<ownedComment xmi:id="ReadLinkObjectEndAction-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction">
<body>A read link object end action is an action that retrieves an end object from a link object.</body>
</ownedComment>
- <ownedRule xmi:id="ReadLinkObjectEndAction-property" name="property" constrainedElement="ReadLinkObjectEndAction">
- <ownedComment xmi:id="ReadLinkObjectEndAction-property-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-property">
- <body>The property must be an association end.</body>
+ <ownedRule xmi:id="ReadLinkObjectEndAction-association_of_association" name="association_of_association" constrainedElement="ReadLinkObjectEndAction">
+ <ownedComment xmi:id="ReadLinkObjectEndAction-association_of_association-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-association_of_association">
+ <body>The association of the association end must be an association class.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-property-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-association_of_association-_specification">
<language>OCL</language>
- <body>self.end.association.notEmpty()</body>
+ <body>self.end.Association.oclIsKindOf(AssociationClass)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="ReadLinkObjectEndAction">
@@ -10885,15 +10870,6 @@ openend.isNavigable()
<body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndAction-ends_of_association" name="ends_of_association" constrainedElement="ReadLinkObjectEndAction">
- <ownedComment xmi:id="ReadLinkObjectEndAction-ends_of_association-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-ends_of_association">
- <body>The ends of the association must not be static.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-ends_of_association-_specification">
- <language>OCL</language>
- <body>self.end.association.memberEnd->forall(e | not e.isStatic)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndAction-type_of_result" name="type_of_result" constrainedElement="ReadLinkObjectEndAction">
<ownedComment xmi:id="ReadLinkObjectEndAction-type_of_result-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-type_of_result">
<body>The type of the result output pin is the same as the type of the association end.</body>
@@ -10903,15 +10879,6 @@ openend.isNavigable()
<body>self.result.type = self.end.type</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="ReadLinkObjectEndAction">
- <ownedComment xmi:id="ReadLinkObjectEndAction-multiplicity_of_result-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-multiplicity_of_result">
- <body>The multiplicity of the result output pin is 1..1.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-multiplicity_of_result-_specification">
- <language>OCL</language>
- <body>self.result.multiplicity.is(1,1)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndAction-type_of_object" name="type_of_object" constrainedElement="ReadLinkObjectEndAction">
<ownedComment xmi:id="ReadLinkObjectEndAction-type_of_object-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-type_of_object">
<body>The type of the object input pin is the association class that owns the association end.</body>
@@ -10921,13 +10888,31 @@ openend.isNavigable()
<body>self.object.type = self.end.association</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndAction-association_of_association" name="association_of_association" constrainedElement="ReadLinkObjectEndAction">
- <ownedComment xmi:id="ReadLinkObjectEndAction-association_of_association-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-association_of_association">
- <body>The association of the association end must be an association class.</body>
+ <ownedRule xmi:id="ReadLinkObjectEndAction-property" name="property" constrainedElement="ReadLinkObjectEndAction">
+ <ownedComment xmi:id="ReadLinkObjectEndAction-property-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-property">
+ <body>The property must be an association end.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-association_of_association-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-property-_specification">
<language>OCL</language>
- <body>self.end.Association.oclIsKindOf(AssociationClass)</body>
+ <body>self.end.association.notEmpty()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="ReadLinkObjectEndAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="ReadLinkObjectEndAction">
+ <ownedComment xmi:id="ReadLinkObjectEndAction-multiplicity_of_result-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-multiplicity_of_result">
+ <body>The multiplicity of the result output pin is 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-multiplicity_of_result-_specification">
+ <language>OCL</language>
+ <body>self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="ReadLinkObjectEndAction-ends_of_association" name="ends_of_association" constrainedElement="ReadLinkObjectEndAction">
+ <ownedComment xmi:id="ReadLinkObjectEndAction-ends_of_association-_ownedComment.0" annotatedElement="ReadLinkObjectEndAction-ends_of_association">
+ <body>The ends of the association must not be static.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndAction-ends_of_association-_specification">
+ <language>OCL</language>
+ <body>self.end.association.memberEnd->forall(e | not e.isStatic)</body>
</specification>
</ownedRule>
<generalization xmi:id="ReadLinkObjectEndAction-_generalization.0" general="Action"/>
@@ -10951,15 +10936,6 @@ openend.isNavigable()
<ownedComment xmi:id="ReadLinkObjectEndQualifierAction-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction">
<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="ReadLinkObjectEndQualifierAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="ReadLinkObjectEndQualifierAction">
- <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_object-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_object">
- <body>The multiplicity of the object input pin is 1..1.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_object-_specification">
- <language>OCL</language>
- <body>self.object.multiplicity.is(1,1)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndQualifierAction-type_of_object" name="type_of_object" constrainedElement="ReadLinkObjectEndQualifierAction">
<ownedComment xmi:id="ReadLinkObjectEndQualifierAction-type_of_object-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-type_of_object">
<body>The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.</body>
@@ -10969,13 +10945,22 @@ openend.isNavigable()
<body>self.object.type = self.qualifier.associationEnd.association</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier" name="multiplicity_of_qualifier" constrainedElement="ReadLinkObjectEndQualifierAction">
- <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier">
- <body>The multiplicity of the qualifier attribute is 1..1.</body>
+ <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="ReadLinkObjectEndQualifierAction">
+ <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_result">
+ <body>The multiplicity of the result output pin is 1..1.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result-_specification">
<language>OCL</language>
- <body>self.qualifier.multiplicity.is(1,1)</body>
+ <body>self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-same_type" name="same_type" constrainedElement="ReadLinkObjectEndQualifierAction">
+ <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-same_type-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-same_type">
+ <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="ReadLinkObjectEndQualifierAction-same_type-_specification">
+ <language>OCL</language>
+ <body>self.result.type = self.qualifier.type</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndQualifierAction-ends_of_association" name="ends_of_association" constrainedElement="ReadLinkObjectEndQualifierAction">
@@ -10987,22 +10972,22 @@ openend.isNavigable()
<body>self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="ReadLinkObjectEndQualifierAction">
- <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_result">
- <body>The multiplicity of the result output pin is 1..1.</body>
+ <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier" name="multiplicity_of_qualifier" constrainedElement="ReadLinkObjectEndQualifierAction">
+ <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier">
+ <body>The multiplicity of the qualifier attribute is 1..1.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_result-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_qualifier-_specification">
<language>OCL</language>
- <body>self.result.multiplicity.is(1,1)</body>
+ <body>self.qualifier.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-same_type" name="same_type" constrainedElement="ReadLinkObjectEndQualifierAction">
- <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-same_type-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-same_type">
- <body>The type of the result output pin is the same as the type of the qualifier attribute.</body>
+ <ownedRule xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="ReadLinkObjectEndQualifierAction">
+ <ownedComment xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_object-_ownedComment.0" annotatedElement="ReadLinkObjectEndQualifierAction-multiplicity_of_object">
+ <body>The multiplicity of the object input pin is 1..1.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-same_type-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadLinkObjectEndQualifierAction-multiplicity_of_object-_specification">
<language>OCL</language>
- <body>self.result.type = self.qualifier.type</body>
+ <body>self.object.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ReadLinkObjectEndQualifierAction-association_of_association" name="association_of_association" constrainedElement="ReadLinkObjectEndQualifierAction">
@@ -11053,13 +11038,13 @@ openend.isNavigable()
<body>self.context->size() = 1</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadSelfAction-multiplicity" name="multiplicity" constrainedElement="ReadSelfAction">
- <ownedComment xmi:id="ReadSelfAction-multiplicity-_ownedComment.0" annotatedElement="ReadSelfAction-multiplicity">
- <body>The multiplicity of the result output pin is 1..1.</body>
+ <ownedRule xmi:id="ReadSelfAction-type" name="type" constrainedElement="ReadSelfAction">
+ <ownedComment xmi:id="ReadSelfAction-type-_ownedComment.0" annotatedElement="ReadSelfAction-type">
+ <body>The type of the result output pin is the host classifier.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadSelfAction-multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadSelfAction-type-_specification">
<language>OCL</language>
- <body>self.result.multiplicity.is(1,1)</body>
+ <body>self.result.type = self.context</body>
</specification>
</ownedRule>
<ownedRule xmi:id="ReadSelfAction-not_static" name="not_static" constrainedElement="ReadSelfAction">
@@ -11071,13 +11056,13 @@ openend.isNavigable()
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReadSelfAction-type" name="type" constrainedElement="ReadSelfAction">
- <ownedComment xmi:id="ReadSelfAction-type-_ownedComment.0" annotatedElement="ReadSelfAction-type">
- <body>The type of the result output pin is the host classifier.</body>
+ <ownedRule xmi:id="ReadSelfAction-multiplicity" name="multiplicity" constrainedElement="ReadSelfAction">
+ <ownedComment xmi:id="ReadSelfAction-multiplicity-_ownedComment.0" annotatedElement="ReadSelfAction-multiplicity">
+ <body>The multiplicity of the result output pin is 1..1.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadSelfAction-type-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReadSelfAction-multiplicity-_specification">
<language>OCL</language>
- <body>self.result.type = self.context</body>
+ <body>self.result.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
<generalization xmi:id="ReadSelfAction-_generalization.0" general="Action"/>
@@ -11091,15 +11076,6 @@ openend.isNavigable()
<ownedComment xmi:id="ReadStructuralFeatureAction-_ownedComment.0" annotatedElement="ReadStructuralFeatureAction">
<body>A read structural feature action is a structural feature action that retrieves the values of a structural feature.</body>
</ownedComment>
- <ownedRule xmi:id="ReadStructuralFeatureAction-multiplicity" name="multiplicity" constrainedElement="ReadStructuralFeatureAction">
- <ownedComment xmi:id="ReadStructuralFeatureAction-multiplicity-_ownedComment.0" annotatedElement="ReadStructuralFeatureAction-multiplicity">
- <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="ReadStructuralFeatureAction-multiplicity-_specification">
- <language>OCL</language>
- <body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReadStructuralFeatureAction-type_and_ordering" name="type_and_ordering" constrainedElement="ReadStructuralFeatureAction">
<ownedComment xmi:id="ReadStructuralFeatureAction-type_and_ordering-_ownedComment.0" annotatedElement="ReadStructuralFeatureAction-type_and_ordering">
<body>The type and ordering of the result output pin are the same as the type and ordering of the structural feature.</body>
@@ -11111,6 +11087,15 @@ and self.result.ordering = self.structuralFeature.ordering
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ReadStructuralFeatureAction-multiplicity" name="multiplicity" constrainedElement="ReadStructuralFeatureAction">
+ <ownedComment xmi:id="ReadStructuralFeatureAction-multiplicity-_ownedComment.0" annotatedElement="ReadStructuralFeatureAction-multiplicity">
+ <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="ReadStructuralFeatureAction-multiplicity-_specification">
+ <language>OCL</language>
+ <body>self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ReadStructuralFeatureAction-_generalization.0" general="StructuralFeatureAction"/>
<ownedAttribute xmi:id="ReadStructuralFeatureAction-result" name="result" visibility="public" type="OutputPin" aggregation="composite" subsettedProperty="Action-output" association="A_result_readStructuralFeatureAction">
<ownedComment xmi:id="ReadStructuralFeatureAction-result-_ownedComment.0" annotatedElement="ReadStructuralFeatureAction-result">
@@ -11188,15 +11173,6 @@ and self.result.ordering = self.variable.ordering
<body>self.argument.type->size() = 0</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReclassifyObjectAction-classifier_not_abstract" name="classifier_not_abstract" constrainedElement="ReclassifyObjectAction">
- <ownedComment xmi:id="ReclassifyObjectAction-classifier_not_abstract-_ownedComment.0" annotatedElement="ReclassifyObjectAction-classifier_not_abstract">
- <body>None of the new classifiers may be abstract.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ReclassifyObjectAction-classifier_not_abstract-_specification">
- <language>OCL</language>
- <body>not self.newClassifier->exists(isAbstract = true)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReclassifyObjectAction-multiplicity" name="multiplicity" constrainedElement="ReclassifyObjectAction">
<ownedComment xmi:id="ReclassifyObjectAction-multiplicity-_ownedComment.0" annotatedElement="ReclassifyObjectAction-multiplicity">
<body>The multiplicity of the input pin is 1..1.</body>
@@ -11206,6 +11182,15 @@ and self.result.ordering = self.variable.ordering
<body>self.argument.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ReclassifyObjectAction-classifier_not_abstract" name="classifier_not_abstract" constrainedElement="ReclassifyObjectAction">
+ <ownedComment xmi:id="ReclassifyObjectAction-classifier_not_abstract-_ownedComment.0" annotatedElement="ReclassifyObjectAction-classifier_not_abstract">
+ <body>None of the new classifiers may be abstract.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ReclassifyObjectAction-classifier_not_abstract-_specification">
+ <language>OCL</language>
+ <body>not self.newClassifier->exists(isAbstract = true)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ReclassifyObjectAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="ReclassifyObjectAction-isReplaceAll" name="isReplaceAll" visibility="public">
<ownedComment xmi:id="ReclassifyObjectAction-isReplaceAll-_ownedComment.0" annotatedElement="ReclassifyObjectAction-isReplaceAll">
@@ -11337,8 +11322,8 @@ and self.result.ordering = self.variable.ordering
<body>if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif</body>
</specification>
</ownedRule>
- <generalization xmi:id="RedefinableTemplateSignature-_generalization.0" general="RedefinableElement"/>
- <generalization xmi:id="RedefinableTemplateSignature-_generalization.1" general="TemplateSignature"/>
+ <generalization xmi:id="RedefinableTemplateSignature-_generalization.0" general="TemplateSignature"/>
+ <generalization xmi:id="RedefinableTemplateSignature-_generalization.1" general="RedefinableElement"/>
<ownedAttribute xmi:id="RedefinableTemplateSignature-classifier" name="classifier" visibility="public" type="Classifier" redefinedProperty="TemplateSignature-template" subsettedProperty="RedefinableElement-redefinitionContext" association="A_ownedTemplateSignature_classifier">
<ownedComment xmi:id="RedefinableTemplateSignature-classifier-_ownedComment.0" annotatedElement="RedefinableTemplateSignature-classifier">
<body>The classifier that owns this template signature.</body>
@@ -11399,6 +11384,15 @@ and self.result.ordering = self.variable.ordering
<ownedComment xmi:id="ReduceAction-_ownedComment.0" annotatedElement="ReduceAction">
<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="ReduceAction-output_types_are_compatible" name="output_types_are_compatible" constrainedElement="ReduceAction">
+ <ownedComment xmi:id="ReduceAction-output_types_are_compatible-_ownedComment.0" annotatedElement="ReduceAction-output_types_are_compatible">
+ <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="ReduceAction-output_types_are_compatible-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="ReduceAction-reducer_inputs_output" name="reducer_inputs_output" constrainedElement="ReduceAction">
<ownedComment xmi:id="ReduceAction-reducer_inputs_output-_ownedComment.0" annotatedElement="ReduceAction-reducer_inputs_output">
<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>
@@ -11417,15 +11411,6 @@ and self.result.ordering = self.variable.ordering
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ReduceAction-output_types_are_compatible" name="output_types_are_compatible" constrainedElement="ReduceAction">
- <ownedComment xmi:id="ReduceAction-output_types_are_compatible-_ownedComment.0" annotatedElement="ReduceAction-output_types_are_compatible">
- <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="ReduceAction-output_types_are_compatible-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<generalization xmi:id="ReduceAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="ReduceAction-collection" name="collection" visibility="public" type="InputPin" aggregation="composite" subsettedProperty="Action-input" association="A_collection_reduceAction">
<ownedComment xmi:id="ReduceAction-collection-_ownedComment.0" annotatedElement="ReduceAction-collection">
@@ -11454,17 +11439,6 @@ and self.result.ordering = self.variable.ordering
<ownedComment xmi:id="Region-_ownedComment.0" annotatedElement="Region">
<body>A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions.</body>
</ownedComment>
- <ownedRule xmi:id="Region-deep_history_vertex" name="deep_history_vertex" constrainedElement="Region">
- <ownedComment xmi:id="Region-deep_history_vertex-_ownedComment.0" annotatedElement="Region-deep_history_vertex">
- <body>A region can have at most one deep history vertex</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Region-deep_history_vertex-_specification">
- <language>OCL</language>
- <body>self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->
-select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1
-</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="Region-shallow_history_vertex" name="shallow_history_vertex" constrainedElement="Region">
<ownedComment xmi:id="Region-shallow_history_vertex-_ownedComment.0" annotatedElement="Region-shallow_history_vertex">
<body>A region can have at most one shallow history vertex</body>
@@ -11476,13 +11450,15 @@ select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1
</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Region-owned" name="owned" constrainedElement="Region">
- <ownedComment xmi:id="Region-owned-_ownedComment.0" annotatedElement="Region-owned">
- <body>If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.</body>
+ <ownedRule xmi:id="Region-deep_history_vertex" name="deep_history_vertex" constrainedElement="Region">
+ <ownedComment xmi:id="Region-deep_history_vertex-_ownedComment.0" annotatedElement="Region-deep_history_vertex">
+ <body>A region can have at most one deep history vertex</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Region-owned-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Region-deep_history_vertex-_specification">
<language>OCL</language>
- <body>(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())</body>
+ <body>self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->
+select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1
+</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Region-initial_vertex" name="initial_vertex" constrainedElement="Region">
@@ -11496,8 +11472,17 @@ select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1
</body>
</specification>
</ownedRule>
- <generalization xmi:id="Region-_generalization.0" general="Namespace"/>
- <generalization xmi:id="Region-_generalization.1" general="RedefinableElement"/>
+ <ownedRule xmi:id="Region-owned" name="owned" constrainedElement="Region">
+ <ownedComment xmi:id="Region-owned-_ownedComment.0" annotatedElement="Region-owned">
+ <body>If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Region-owned-_specification">
+ <language>OCL</language>
+ <body>(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:id="Region-_generalization.0" general="RedefinableElement"/>
+ <generalization xmi:id="Region-_generalization.1" general="Namespace"/>
<ownedAttribute xmi:id="Region-extendedRegion" name="extendedRegion" visibility="public" type="Region" subsettedProperty="RedefinableElement-redefinedElement" association="A_extendedRegion_region">
<ownedComment xmi:id="Region-extendedRegion-_ownedComment.0" annotatedElement="Region-extendedRegion">
<body>The region of which this region is an extension.</body>
@@ -11706,15 +11691,6 @@ endif</body>
<ownedComment xmi:id="ReplyAction-_ownedComment.0" annotatedElement="ReplyAction">
<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="ReplyAction-pins_match_parameter" name="pins_match_parameter" constrainedElement="ReplyAction">
- <ownedComment xmi:id="ReplyAction-pins_match_parameter-_ownedComment.0" annotatedElement="ReplyAction-pins_match_parameter">
- <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="ReplyAction-pins_match_parameter-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="ReplyAction-event_on_reply_to_call_trigger" name="event_on_reply_to_call_trigger" constrainedElement="ReplyAction">
<ownedComment xmi:id="ReplyAction-event_on_reply_to_call_trigger-_ownedComment.0" annotatedElement="ReplyAction-event_on_reply_to_call_trigger">
<body>The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)</body>
@@ -11724,6 +11700,15 @@ endif</body>
<body>replyToCallEvent.oclIsKindOf(CallEvent)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="ReplyAction-pins_match_parameter" name="pins_match_parameter" constrainedElement="ReplyAction">
+ <ownedComment xmi:id="ReplyAction-pins_match_parameter-_ownedComment.0" annotatedElement="ReplyAction-pins_match_parameter">
+ <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="ReplyAction-pins_match_parameter-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="ReplyAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="ReplyAction-replyToCall" name="replyToCall" visibility="public" type="Trigger" association="A_replyToCall_replyAction">
<ownedComment xmi:id="ReplyAction-replyToCall-_ownedComment.0" annotatedElement="ReplyAction-replyToCall">
@@ -11811,7 +11796,7 @@ endif</body>
<body>A signal is a specification of send request instances communicated between objects. The receiving object handles the received request instances as specified by its receptions. The data carried by a send request (which was passed to it by the send invocation occurrence that caused that request) are represented as attributes of the signal. A signal is defined independently of the classifiers handling the signal occurrence.</body>
</ownedComment>
<generalization xmi:id="Signal-_generalization.0" general="Classifier"/>
- <ownedAttribute xmi:id="Signal-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute Namespace-ownedMember" association="A_ownedAttribute_owningSignal">
+ <ownedAttribute xmi:id="Signal-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Namespace-ownedMember Classifier-attribute" association="A_ownedAttribute_owningSignal">
<ownedComment xmi:id="Signal-ownedAttribute-_ownedComment.0" annotatedElement="Signal-ownedAttribute">
<body>The attributes owned by the signal.</body>
</ownedComment>
@@ -11857,20 +11842,20 @@ endif</body>
<ownedComment xmi:id="StartClassifierBehaviorAction-_ownedComment.0" annotatedElement="StartClassifierBehaviorAction">
<body>A start classifier behavior action is an action that starts the classifier behavior of the input.</body>
</ownedComment>
- <ownedRule xmi:id="StartClassifierBehaviorAction-multiplicity" name="multiplicity" constrainedElement="StartClassifierBehaviorAction">
- <ownedComment xmi:id="StartClassifierBehaviorAction-multiplicity-_ownedComment.0" annotatedElement="StartClassifierBehaviorAction-multiplicity">
- <body>The multiplicity of the input pin is 1..1</body>
+ <ownedRule xmi:id="StartClassifierBehaviorAction-type_has_classifier" name="type_has_classifier" constrainedElement="StartClassifierBehaviorAction">
+ <ownedComment xmi:id="StartClassifierBehaviorAction-type_has_classifier-_ownedComment.0" annotatedElement="StartClassifierBehaviorAction-type_has_classifier">
+ <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="StartClassifierBehaviorAction-multiplicity-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StartClassifierBehaviorAction-type_has_classifier-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="StartClassifierBehaviorAction-type_has_classifier" name="type_has_classifier" constrainedElement="StartClassifierBehaviorAction">
- <ownedComment xmi:id="StartClassifierBehaviorAction-type_has_classifier-_ownedComment.0" annotatedElement="StartClassifierBehaviorAction-type_has_classifier">
- <body>If the input pin has a type, then the type must have a classifier behavior.</body>
+ <ownedRule xmi:id="StartClassifierBehaviorAction-multiplicity" name="multiplicity" constrainedElement="StartClassifierBehaviorAction">
+ <ownedComment xmi:id="StartClassifierBehaviorAction-multiplicity-_ownedComment.0" annotatedElement="StartClassifierBehaviorAction-multiplicity">
+ <body>The multiplicity of the input pin is 1..1</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StartClassifierBehaviorAction-type_has_classifier-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StartClassifierBehaviorAction-multiplicity-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -11886,20 +11871,11 @@ endif</body>
<ownedComment xmi:id="StartObjectBehaviorAction-_ownedComment.0" annotatedElement="StartObjectBehaviorAction">
<body>StartObjectBehaviorAction is an action that starts the execution either of a directly instantiated behavior or of the classifier behavior of an object. Argument values may be supplied for the input parameters of the behavior. If the behavior is invoked synchronously, then output values may be obtained for output parameters.</body>
</ownedComment>
- <ownedRule xmi:id="StartObjectBehaviorAction-number_order_results" name="number_order_results" constrainedElement="StartObjectBehaviorAction">
- <ownedComment xmi:id="StartObjectBehaviorAction-number_order_results-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-number_order_results">
- <body>The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-number_order_results-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="StartObjectBehaviorAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="StartObjectBehaviorAction">
- <ownedComment xmi:id="StartObjectBehaviorAction-multiplicity_of_object-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-multiplicity_of_object">
- <body>The multiplicity of the object input pin must be [1..1].</body>
+ <ownedRule xmi:id="StartObjectBehaviorAction-number_order_arguments" name="number_order_arguments" constrainedElement="StartObjectBehaviorAction">
+ <ownedComment xmi:id="StartObjectBehaviorAction-number_order_arguments-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-number_order_arguments">
+ <body>The number and order of the argument pins must be the same as the number and order of the in and in-out parameters of the invoked behavior. Pins are matched to parameters by order.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-multiplicity_of_object-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-number_order_arguments-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -11913,11 +11889,11 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="StartObjectBehaviorAction-number_order_arguments" name="number_order_arguments" constrainedElement="StartObjectBehaviorAction">
- <ownedComment xmi:id="StartObjectBehaviorAction-number_order_arguments-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-number_order_arguments">
- <body>The number and order of the argument pins must be the same as the number and order of the in and in-out parameters of the invoked behavior. Pins are matched to parameters by order.</body>
+ <ownedRule xmi:id="StartObjectBehaviorAction-number_order_results" name="number_order_results" constrainedElement="StartObjectBehaviorAction">
+ <ownedComment xmi:id="StartObjectBehaviorAction-number_order_results-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-number_order_results">
+ <body>The number and order of result pins must be the same as the number and order of the in-out, out and return parameters of the invoked behavior. Pins are matched to parameters by order.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-number_order_arguments-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-number_order_results-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -11931,6 +11907,15 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="StartObjectBehaviorAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="StartObjectBehaviorAction">
+ <ownedComment xmi:id="StartObjectBehaviorAction-multiplicity_of_object-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-multiplicity_of_object">
+ <body>The multiplicity of the object input pin must be [1..1].</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StartObjectBehaviorAction-multiplicity_of_object-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="StartObjectBehaviorAction-_generalization.0" general="CallAction"/>
<ownedAttribute xmi:id="StartObjectBehaviorAction-object" name="object" visibility="public" type="InputPin" aggregation="composite" subsettedProperty="Action-input" association="A_object_startObjectBehaviorAction">
<ownedComment xmi:id="StartObjectBehaviorAction-object-_ownedComment.0" annotatedElement="StartObjectBehaviorAction-object">
@@ -11954,15 +11939,6 @@ endif</body>
<body>connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="State-submachine_states" name="submachine_states" constrainedElement="State">
- <ownedComment xmi:id="State-submachine_states-_ownedComment.0" annotatedElement="State-submachine_states">
- <body>Only submachine states can have connection point references.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="State-submachine_states-_specification">
- <language>OCL</language>
- <body>isSubmachineState implies connection->notEmpty ( )</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="State-composite_states" name="composite_states" constrainedElement="State">
<ownedComment xmi:id="State-composite_states-_ownedComment.0" annotatedElement="State-composite_states">
<body>Only composite states can have entry or exit pseudostates defined.</body>
@@ -11992,8 +11968,17 @@ cp.exit->forAll (p | p.statemachine = self.submachine)))</body>
<body>isComposite implies not isSubmachineState</body>
</specification>
</ownedRule>
- <generalization xmi:id="State-_generalization.0" general="RedefinableElement"/>
- <generalization xmi:id="State-_generalization.1" general="Namespace"/>
+ <ownedRule xmi:id="State-submachine_states" name="submachine_states" constrainedElement="State">
+ <ownedComment xmi:id="State-submachine_states-_ownedComment.0" annotatedElement="State-submachine_states">
+ <body>Only submachine states can have connection point references.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="State-submachine_states-_specification">
+ <language>OCL</language>
+ <body>isSubmachineState implies connection->notEmpty ( )</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:id="State-_generalization.0" general="Namespace"/>
+ <generalization xmi:id="State-_generalization.1" general="RedefinableElement"/>
<generalization xmi:id="State-_generalization.2" general="Vertex"/>
<ownedAttribute xmi:id="State-connection" name="connection" visibility="public" type="ConnectionPointReference" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_connection_state">
<ownedComment xmi:id="State-connection-_ownedComment.0" annotatedElement="State-connection">
@@ -12228,13 +12213,13 @@ endif</body>
<ownedComment xmi:id="StateMachine-_ownedComment.0" annotatedElement="StateMachine">
<body>State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine.</body>
</ownedComment>
- <ownedRule xmi:id="StateMachine-connection_points" name="connection_points" constrainedElement="StateMachine">
- <ownedComment xmi:id="StateMachine-connection_points-_ownedComment.0" annotatedElement="StateMachine-connection_points">
- <body>The connection points of a state machine are pseudostates of kind entry point or exit point.</body>
+ <ownedRule xmi:id="StateMachine-method" name="method" constrainedElement="StateMachine">
+ <ownedComment xmi:id="StateMachine-method-_ownedComment.0" annotatedElement="StateMachine-method">
+ <body>A state machine as the method for a behavioral feature cannot have entry/exit connection points.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StateMachine-connection_points-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StateMachine-method-_specification">
<language>OCL</language>
- <body>conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)</body>
+ <body>specification->notEmpty() implies connectionPoint->isEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="StateMachine-classifier_context" name="classifier_context" constrainedElement="StateMachine">
@@ -12246,15 +12231,6 @@ endif</body>
<body>context->notEmpty() implies not context.oclIsKindOf(Interface)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="StateMachine-method" name="method" constrainedElement="StateMachine">
- <ownedComment xmi:id="StateMachine-method-_ownedComment.0" annotatedElement="StateMachine-method">
- <body>A state machine as the method for a behavioral feature cannot have entry/exit connection points.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StateMachine-method-_specification">
- <language>OCL</language>
- <body>specification->notEmpty() implies connectionPoint->isEmpty()</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="StateMachine-context_classifier" name="context_classifier" constrainedElement="StateMachine">
<ownedComment xmi:id="StateMachine-context_classifier-_ownedComment.0" annotatedElement="StateMachine-context_classifier">
<body>The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.</body>
@@ -12264,6 +12240,15 @@ endif</body>
<body>specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="StateMachine-connection_points" name="connection_points" constrainedElement="StateMachine">
+ <ownedComment xmi:id="StateMachine-connection_points-_ownedComment.0" annotatedElement="StateMachine-connection_points">
+ <body>The connection points of a state machine are pseudostates of kind entry point or exit point.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StateMachine-connection_points-_specification">
+ <language>OCL</language>
+ <body>conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="StateMachine-_generalization.0" general="Behavior"/>
<ownedAttribute xmi:id="StateMachine-connectionPoint" name="connectionPoint" visibility="public" type="Pseudostate" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_connectionPoint_stateMachine">
<ownedComment xmi:id="StateMachine-connectionPoint-_ownedComment.0" annotatedElement="StateMachine-connectionPoint">
@@ -12367,6 +12352,26 @@ endif
<ownedComment xmi:id="Stereotype-_ownedComment.0" annotatedElement="Stereotype">
<body>A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.</body>
</ownedComment>
+ <ownedRule xmi:id="Stereotype-associationEndOwnership" name="associationEndOwnership" constrainedElement="Stereotype">
+ <ownedComment xmi:id="Stereotype-associationEndOwnership-_ownedComment.0" annotatedElement="Stereotype-associationEndOwnership">
+ <body>Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Stereotype-associationEndOwnership-_specification">
+ <language>OCL</language>
+ <body>ownedAttribute
+->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))
+->forAll(opposite.owner = association)</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Stereotype-name_not_clash" name="name_not_clash" constrainedElement="Stereotype">
+ <ownedComment xmi:id="Stereotype-name_not_clash-_ownedComment.0" annotatedElement="Stereotype-name_not_clash">
+ <body>Stereotype names should not clash with keyword names for the extended model element.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Stereotype-name_not_clash-_specification">
+ <language>OCL</language>
+ <body>true</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Stereotype-binaryAssociationsOnly" name="binaryAssociationsOnly" constrainedElement="Stereotype">
<ownedComment xmi:id="Stereotype-binaryAssociationsOnly-_ownedComment.0" annotatedElement="Stereotype-binaryAssociationsOnly">
<body>Stereotypes may only participate in binary associations.</body>
@@ -12385,26 +12390,6 @@ endif
<body>generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) </body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Stereotype-name_not_clash" name="name_not_clash" constrainedElement="Stereotype">
- <ownedComment xmi:id="Stereotype-name_not_clash-_ownedComment.0" annotatedElement="Stereotype-name_not_clash">
- <body>Stereotype names should not clash with keyword names for the extended model element.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Stereotype-name_not_clash-_specification">
- <language>OCL</language>
- <body>true</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Stereotype-associationEndOwnership" name="associationEndOwnership" constrainedElement="Stereotype">
- <ownedComment xmi:id="Stereotype-associationEndOwnership-_ownedComment.0" annotatedElement="Stereotype-associationEndOwnership">
- <body>Where a stereotype’s property is an association end for an association other than a kind of extension, and the other end is not a stereotype, the other end must be owned by the association itself.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Stereotype-associationEndOwnership-_specification">
- <language>OCL</language>
- <body>ownedAttribute
-->select(association->notEmpty() and not association.oclIsKindOf(Extension) and not type.oclIsKindOf(Stereotype))
-->forAll(opposite.owner = association)</body>
- </specification>
- </ownedRule>
<generalization xmi:id="Stereotype-_generalization.0" general="Class"/>
<ownedAttribute xmi:id="Stereotype-icon" name="icon" visibility="public" type="Image" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_icon_stereotype">
<ownedComment xmi:id="Stereotype-icon-_ownedComment.0" annotatedElement="Stereotype-icon">
@@ -12447,15 +12432,6 @@ endif
<ownedComment xmi:id="StringExpression-_ownedComment.0" annotatedElement="StringExpression">
<body>An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters.</body>
</ownedComment>
- <ownedRule xmi:id="StringExpression-operands" name="operands" constrainedElement="StringExpression">
- <ownedComment xmi:id="StringExpression-operands-_ownedComment.0" annotatedElement="StringExpression-operands">
- <body>All the operands of a StringExpression must be LiteralStrings</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StringExpression-operands-_specification">
- <language>OCL</language>
- <body>operand->forAll (op | op.oclIsKindOf (LiteralString))</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="StringExpression-subexpressions" name="subexpressions" constrainedElement="StringExpression">
<ownedComment xmi:id="StringExpression-subexpressions-_ownedComment.0" annotatedElement="StringExpression-subexpressions">
<body>If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).</body>
@@ -12465,8 +12441,17 @@ endif
<body>if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()</body>
</specification>
</ownedRule>
- <generalization xmi:id="StringExpression-_generalization.0" general="TemplateableElement"/>
- <generalization xmi:id="StringExpression-_generalization.1" general="Expression"/>
+ <ownedRule xmi:id="StringExpression-operands" name="operands" constrainedElement="StringExpression">
+ <ownedComment xmi:id="StringExpression-operands-_ownedComment.0" annotatedElement="StringExpression-operands">
+ <body>All the operands of a StringExpression must be LiteralStrings</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StringExpression-operands-_specification">
+ <language>OCL</language>
+ <body>operand->forAll (op | op.oclIsKindOf (LiteralString))</body>
+ </specification>
+ </ownedRule>
+ <generalization xmi:id="StringExpression-_generalization.0" general="Expression"/>
+ <generalization xmi:id="StringExpression-_generalization.1" general="TemplateableElement"/>
<ownedAttribute xmi:id="StringExpression-owningExpression" name="owningExpression" visibility="public" type="StringExpression" subsettedProperty="Element-owner" association="A_subExpression_owningExpression">
<ownedComment xmi:id="StringExpression-owningExpression-_ownedComment.0" annotatedElement="StringExpression-owningExpression">
<body>The string expression of which this expression is a substring.</body>
@@ -12499,13 +12484,13 @@ else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))</bo
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="StructuralFeature" name="StructuralFeature" isAbstract="true">
<ownedComment xmi:id="StructuralFeature-_ownedComment.0" annotatedElement="StructuralFeature">
- <body>By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.</body>
+ <body>A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.</body>
</ownedComment>
<ownedComment xmi:id="StructuralFeature-_ownedComment.1" annotatedElement="StructuralFeature">
- <body>A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.</body>
+ <body>By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the collection of values associated with an instantiation of the structural feature.</body>
</ownedComment>
- <generalization xmi:id="StructuralFeature-_generalization.0" general="MultiplicityElement"/>
- <generalization xmi:id="StructuralFeature-_generalization.1" general="TypedElement"/>
+ <generalization xmi:id="StructuralFeature-_generalization.0" general="TypedElement"/>
+ <generalization xmi:id="StructuralFeature-_generalization.1" general="MultiplicityElement"/>
<generalization xmi:id="StructuralFeature-_generalization.2" general="Feature"/>
<ownedAttribute xmi:id="StructuralFeature-isReadOnly" name="isReadOnly" visibility="public">
<ownedComment xmi:id="StructuralFeature-isReadOnly-_ownedComment.0" annotatedElement="StructuralFeature-isReadOnly">
@@ -12519,25 +12504,6 @@ else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))</bo
<ownedComment xmi:id="StructuralFeatureAction-_ownedComment.0" annotatedElement="StructuralFeatureAction">
<body>StructuralFeatureAction is an abstract class for all structural feature actions.</body>
</ownedComment>
- <ownedRule xmi:id="StructuralFeatureAction-multiplicity" name="multiplicity" constrainedElement="StructuralFeatureAction">
- <ownedComment xmi:id="StructuralFeatureAction-multiplicity-_ownedComment.0" annotatedElement="StructuralFeatureAction-multiplicity">
- <body>The multiplicity of the object input pin must be 1..1.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuralFeatureAction-multiplicity-_specification">
- <language>OCL</language>
- <body>self.object.lowerBound()=1 and self.object.upperBound()=1</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="StructuralFeatureAction-same_type" name="same_type" constrainedElement="StructuralFeatureAction">
- <ownedComment xmi:id="StructuralFeatureAction-same_type-_ownedComment.0" annotatedElement="StructuralFeatureAction-same_type">
- <body>The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuralFeatureAction-same_type-_specification">
- <language>OCL</language>
- <body>self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or
- self.structuralFeature.oclAsType(Property).opposite.type = self.object.type</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="StructuralFeatureAction-visibility" name="visibility" constrainedElement="StructuralFeatureAction">
<ownedComment xmi:id="StructuralFeatureAction-visibility-_ownedComment.0" annotatedElement="StructuralFeatureAction-visibility">
<body>Visibility of structural feature must allow access to the object performing the action.</body>
@@ -12552,6 +12518,15 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="StructuralFeatureAction-multiplicity" name="multiplicity" constrainedElement="StructuralFeatureAction">
+ <ownedComment xmi:id="StructuralFeatureAction-multiplicity-_ownedComment.0" annotatedElement="StructuralFeatureAction-multiplicity">
+ <body>The multiplicity of the object input pin must be 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuralFeatureAction-multiplicity-_specification">
+ <language>OCL</language>
+ <body>self.object.lowerBound()=1 and self.object.upperBound()=1</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="StructuralFeatureAction-not_static" name="not_static" constrainedElement="StructuralFeatureAction">
<ownedComment xmi:id="StructuralFeatureAction-not_static-_ownedComment.0" annotatedElement="StructuralFeatureAction-not_static">
<body>The structural feature must not be static.</body>
@@ -12570,6 +12545,16 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
<body>self.structuralFeature.featuringClassifier->size() = 1</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="StructuralFeatureAction-same_type" name="same_type" constrainedElement="StructuralFeatureAction">
+ <ownedComment xmi:id="StructuralFeatureAction-same_type-_ownedComment.0" annotatedElement="StructuralFeatureAction-same_type">
+ <body>The structural feature must either be owned by the type of the object input pin, or it must be an owned end of a binary association with the type of the opposite end being the type of the object input pin.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuralFeatureAction-same_type-_specification">
+ <language>OCL</language>
+ <body>self.structuralFeature.featuringClassifier.oclAsType(Type)->includes(self.object.type) or
+ self.structuralFeature.oclAsType(Property).opposite.type = self.object.type</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="StructuralFeatureAction-_generalization.0" general="Action"/>
<ownedAttribute xmi:id="StructuralFeatureAction-object" name="object" visibility="public" type="InputPin" aggregation="composite" subsettedProperty="Action-input" association="A_object_structuralFeatureAction">
<ownedComment xmi:id="StructuralFeatureAction-object-_ownedComment.0" annotatedElement="StructuralFeatureAction-object">
@@ -12584,16 +12569,16 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="StructuredActivityNode" name="StructuredActivityNode">
<ownedComment xmi:id="StructuredActivityNode-_ownedComment.0" annotatedElement="StructuredActivityNode">
- <body>Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.</body>
+ <body>A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.</body>
</ownedComment>
<ownedComment xmi:id="StructuredActivityNode-_ownedComment.1" annotatedElement="StructuredActivityNode">
- <body>A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.</body>
+ <body>Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is &quot;isolated,&quot; then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.</body>
</ownedComment>
- <ownedRule xmi:id="StructuredActivityNode-output_pin_edges" name="output_pin_edges" constrainedElement="StructuredActivityNode">
- <ownedComment xmi:id="StructuredActivityNode-output_pin_edges-_ownedComment.0" annotatedElement="StructuredActivityNode-output_pin_edges">
- <body>The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.</body>
+ <ownedRule xmi:id="StructuredActivityNode-input_pin_edges" name="input_pin_edges" constrainedElement="StructuredActivityNode">
+ <ownedComment xmi:id="StructuredActivityNode-input_pin_edges-_ownedComment.0" annotatedElement="StructuredActivityNode-input_pin_edges">
+ <body>The incoming edges of the input pins of a StructuredActivityNode must have sources that are not within the StructuredActivityNode.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuredActivityNode-output_pin_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuredActivityNode-input_pin_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -12607,18 +12592,18 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="StructuredActivityNode-input_pin_edges" name="input_pin_edges" constrainedElement="StructuredActivityNode">
- <ownedComment xmi:id="StructuredActivityNode-input_pin_edges-_ownedComment.0" annotatedElement="StructuredActivityNode-input_pin_edges">
- <body>The incoming edges of the input pins of a StructuredActivityNode must have sources that are not within the StructuredActivityNode.</body>
+ <ownedRule xmi:id="StructuredActivityNode-output_pin_edges" name="output_pin_edges" constrainedElement="StructuredActivityNode">
+ <ownedComment xmi:id="StructuredActivityNode-output_pin_edges-_ownedComment.0" annotatedElement="StructuredActivityNode-output_pin_edges">
+ <body>The outgoing edges of the output pins of a StructuredActivityNode must have targets that are not within the StructuredActivityNode.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuredActivityNode-input_pin_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="StructuredActivityNode-output_pin_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <generalization xmi:id="StructuredActivityNode-_generalization.0" general="Namespace"/>
- <generalization xmi:id="StructuredActivityNode-_generalization.1" general="ActivityGroup"/>
- <generalization xmi:id="StructuredActivityNode-_generalization.2" general="Action"/>
+ <generalization xmi:id="StructuredActivityNode-_generalization.0" general="Action"/>
+ <generalization xmi:id="StructuredActivityNode-_generalization.1" general="Namespace"/>
+ <generalization xmi:id="StructuredActivityNode-_generalization.2" general="ActivityGroup"/>
<ownedAttribute xmi:id="StructuredActivityNode-activity" name="activity" visibility="public" type="Activity" redefinedProperty="ActivityGroup-inActivity ActivityNode-activity" association="A_structuredNode_activity">
<ownedComment xmi:id="StructuredActivityNode-activity-_ownedComment.0" annotatedElement="StructuredActivityNode-activity">
<body>Activity immediately containing the node.</body>
@@ -12639,7 +12624,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="StructuredActivityNode-mustIsolate-_defaultValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="StructuredActivityNode-node" name="node" visibility="public" type="ActivityNode" aggregation="composite" subsettedProperty="Element-ownedElement ActivityGroup-containedNode" association="A_node_inStructuredNode">
+ <ownedAttribute xmi:id="StructuredActivityNode-node" name="node" visibility="public" type="ActivityNode" aggregation="composite" subsettedProperty="ActivityGroup-containedNode Element-ownedElement" association="A_node_inStructuredNode">
<ownedComment xmi:id="StructuredActivityNode-node-_ownedComment.0" annotatedElement="StructuredActivityNode-node">
<body>Nodes immediately contained in the group.</body>
</ownedComment>
@@ -12676,7 +12661,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</specification>
</ownedRule>
<generalization xmi:id="StructuredClassifier-_generalization.0" general="Classifier"/>
- <ownedAttribute xmi:id="StructuredClassifier-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute StructuredClassifier-role Namespace-ownedMember" association="A_ownedAttribute_structuredClassifier">
+ <ownedAttribute xmi:id="StructuredClassifier-ownedAttribute" name="ownedAttribute" visibility="public" type="Property" isOrdered="true" aggregation="composite" subsettedProperty="Classifier-attribute Namespace-ownedMember StructuredClassifier-role" association="A_ownedAttribute_structuredClassifier">
<ownedComment xmi:id="StructuredClassifier-ownedAttribute-_ownedComment.0" annotatedElement="StructuredClassifier-ownedAttribute">
<body>References the properties owned by the classifier.</body>
</ownedComment>
@@ -12730,7 +12715,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
<body>The contract with which the substituting classifier complies.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="Substitution-substitutingClassifier" name="substitutingClassifier" visibility="public" type="Classifier" subsettedProperty="Dependency-client Element-owner" association="A_substitution_substitutingClassifier">
+ <ownedAttribute xmi:id="Substitution-substitutingClassifier" name="substitutingClassifier" visibility="public" type="Classifier" subsettedProperty="Element-owner Dependency-client" association="A_substitution_substitutingClassifier">
<ownedComment xmi:id="Substitution-substitutingClassifier-_ownedComment.0" annotatedElement="Substitution-substitutingClassifier">
<body>Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.</body>
</ownedComment>
@@ -12759,7 +12744,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</specification>
</ownedRule>
<generalization xmi:id="TemplateBinding-_generalization.0" general="DirectedRelationship"/>
- <ownedAttribute xmi:id="TemplateBinding-boundElement" name="boundElement" visibility="public" type="TemplateableElement" subsettedProperty="DirectedRelationship-source Element-owner" association="A_templateBinding_boundElement">
+ <ownedAttribute xmi:id="TemplateBinding-boundElement" name="boundElement" visibility="public" type="TemplateableElement" subsettedProperty="Element-owner DirectedRelationship-source" association="A_templateBinding_boundElement">
<ownedComment xmi:id="TemplateBinding-boundElement-_ownedComment.0" annotatedElement="TemplateBinding-boundElement">
<body>The element that is bound by this binding.</body>
</ownedComment>
@@ -12803,7 +12788,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="TemplateParameter-ownedDefault-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="TemplateParameter-ownedParameteredElement" name="ownedParameteredElement" visibility="public" type="ParameterableElement" aggregation="composite" subsettedProperty="Element-ownedElement TemplateParameter-parameteredElement" association="A_ownedParameteredElement_owningTemplateParameter">
+ <ownedAttribute xmi:id="TemplateParameter-ownedParameteredElement" name="ownedParameteredElement" visibility="public" type="ParameterableElement" aggregation="composite" subsettedProperty="TemplateParameter-parameteredElement Element-ownedElement" association="A_ownedParameteredElement_owningTemplateParameter">
<ownedComment xmi:id="TemplateParameter-ownedParameteredElement-_ownedComment.0" annotatedElement="TemplateParameter-ownedParameteredElement">
<body>The element that is owned by this template parameter.</body>
</ownedComment>
@@ -12814,7 +12799,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
<body>The element exposed by this template parameter.</body>
</ownedComment>
</ownedAttribute>
- <ownedAttribute xmi:id="TemplateParameter-signature" name="signature" visibility="public" type="TemplateSignature" subsettedProperty="A_parameter_templateSignature-templateSignature Element-owner" association="A_ownedParameter_signature">
+ <ownedAttribute xmi:id="TemplateParameter-signature" name="signature" visibility="public" type="TemplateSignature" subsettedProperty="Element-owner A_parameter_templateSignature-templateSignature" association="A_ownedParameter_signature">
<ownedComment xmi:id="TemplateParameter-signature-_ownedComment.0" annotatedElement="TemplateParameter-signature">
<body>The template signature that owns this template parameter.</body>
</ownedComment>
@@ -12870,7 +12855,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</specification>
</ownedRule>
<generalization xmi:id="TemplateSignature-_generalization.0" general="Element"/>
- <ownedAttribute xmi:id="TemplateSignature-ownedParameter" name="ownedParameter" visibility="public" type="TemplateParameter" isOrdered="true" aggregation="composite" subsettedProperty="Element-ownedElement TemplateSignature-parameter" association="A_ownedParameter_signature">
+ <ownedAttribute xmi:id="TemplateSignature-ownedParameter" name="ownedParameter" visibility="public" type="TemplateParameter" isOrdered="true" aggregation="composite" subsettedProperty="TemplateSignature-parameter Element-ownedElement" association="A_ownedParameter_signature">
<ownedComment xmi:id="TemplateSignature-ownedParameter-_ownedComment.0" annotatedElement="TemplateSignature-ownedParameter">
<body>The formal template parameters that are owned by this template signature.</body>
</ownedComment>
@@ -12900,7 +12885,7 @@ or (self.structuralFeature.visibility = #protected and host.allSupertypes
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="TemplateableElement-ownedTemplateSignature-_lowerValue"/>
</ownedAttribute>
- <ownedAttribute xmi:id="TemplateableElement-templateBinding" name="templateBinding" visibility="public" type="TemplateBinding" aggregation="composite" subsettedProperty="Element-ownedElement A_source_directedRelationship-directedRelationship" association="A_templateBinding_boundElement">
+ <ownedAttribute xmi:id="TemplateableElement-templateBinding" name="templateBinding" visibility="public" type="TemplateBinding" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Element-ownedElement" association="A_templateBinding_boundElement">
<ownedComment xmi:id="TemplateableElement-templateBinding-_ownedComment.0" annotatedElement="TemplateableElement-templateBinding">
<body>The optional bindings from this element to templates.</body>
</ownedComment>
@@ -13016,20 +13001,20 @@ and self.second.type->size() = 0
<ownedComment xmi:id="TimeEvent-_ownedComment.1" annotatedElement="TimeEvent">
<body>A time event specifies a point in time. At the specified time, the event occurs.</body>
</ownedComment>
- <ownedRule xmi:id="TimeEvent-when_non_negative" name="when_non_negative" constrainedElement="TimeEvent">
- <ownedComment xmi:id="TimeEvent-when_non_negative-_ownedComment.0" annotatedElement="TimeEvent-when_non_negative">
- <body>The ValueSpecification when must return a non-negative Integer.</body>
+ <ownedRule xmi:id="TimeEvent-starting_time" name="starting_time" constrainedElement="TimeEvent">
+ <ownedComment xmi:id="TimeEvent-starting_time-_ownedComment.0" annotatedElement="TimeEvent-starting_time">
+ <body>The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="TimeEvent-when_non_negative-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="TimeEvent-starting_time-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="TimeEvent-starting_time" name="starting_time" constrainedElement="TimeEvent">
- <ownedComment xmi:id="TimeEvent-starting_time-_ownedComment.0" annotatedElement="TimeEvent-starting_time">
- <body>The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.</body>
+ <ownedRule xmi:id="TimeEvent-when_non_negative" name="when_non_negative" constrainedElement="TimeEvent">
+ <ownedComment xmi:id="TimeEvent-when_non_negative-_ownedComment.0" annotatedElement="TimeEvent-when_non_negative">
+ <body>The ValueSpecification when must return a non-negative Integer.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="TimeEvent-starting_time-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="TimeEvent-when_non_negative-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -13105,42 +13090,24 @@ and self.second.type->size() = 0
<ownedComment xmi:id="Transition-_ownedComment.0" annotatedElement="Transition">
<body>A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type.</body>
</ownedComment>
- <ownedRule xmi:id="Transition-state_is_external" name="state_is_external" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-state_is_external-_ownedComment.0" annotatedElement="Transition-state_is_external">
- <body>A transition with kind external can source any vertex except entry points.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_external-_specification">
- <language>OCL</language>
- <body>(kind = TransitionKind::external) implies
- not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Transition-join_segment_guards" name="join_segment_guards" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-join_segment_guards-_ownedComment.0" annotatedElement="Transition-join_segment_guards">
- <body>A join segment must not have guards or triggers.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-join_segment_guards-_specification">
- <language>OCL</language>
- <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="Transition-state_is_internal" name="state_is_internal" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-state_is_internal-_ownedComment.0" annotatedElement="Transition-state_is_internal">
- <body>A transition with kind internal must have a state as its source, and its source and target must be equal.</body>
+ <ownedRule xmi:id="Transition-state_is_local" name="state_is_local" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-state_is_local-_ownedComment.0" annotatedElement="Transition-state_is_local">
+ <body>A transition with kind local must have a composite state or an entry point as its source.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_internal-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_local-_specification">
<language>OCL</language>
- <body>(kind = TransitionKind::internal) implies
- (source.oclIsKindOf (State) and source = target)</body>
+ <body>(kind = TransitionKind::local) implies
+ ((source.oclIsKindOf (State) and source.oclAsType(State).isComposite) or
+ (source.oclIsKindOf (Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-outgoing_pseudostates" name="outgoing_pseudostates" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-outgoing_pseudostates-_ownedComment.0" annotatedElement="Transition-outgoing_pseudostates">
- <body>Transitions outgoing pseudostates may not have a trigger.</body>
+ <ownedRule xmi:id="Transition-fork_segment_guards" name="fork_segment_guards" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-fork_segment_guards-_ownedComment.0" annotatedElement="Transition-fork_segment_guards">
+ <body>A fork segment must not have guards or triggers.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-outgoing_pseudostates-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-fork_segment_guards-_specification">
<language>OCL</language>
- <body>source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()</body>
+ <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Transition-join_segment_state" name="join_segment_state" constrainedElement="Transition">
@@ -13152,13 +13119,27 @@ and self.second.type->size() = 0
<body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-fork_segment_state" name="fork_segment_state" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-fork_segment_state-_ownedComment.0" annotatedElement="Transition-fork_segment_state">
- <body>A fork segment must always target a state.</body>
+ <ownedRule xmi:id="Transition-initial_transition" name="initial_transition" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-initial_transition-_ownedComment.0" annotatedElement="Transition-initial_transition">
+ <body>An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype >.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-fork_segment_state-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-initial_transition-_specification">
<language>OCL</language>
- <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))</body>
+ <body>self.source.oclIsKindOf(Pseudostate) implies
+(self.source.oclAsType(Pseudostate).kind = #initial) implies
+(self.source.container = self.stateMachine.top) implies
+((self.trigger->isEmpty) or
+(self.trigger.stereotype.name = 'create'))
+</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Transition-outgoing_pseudostates" name="outgoing_pseudostates" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-outgoing_pseudostates-_ownedComment.0" annotatedElement="Transition-outgoing_pseudostates">
+ <body>Transitions outgoing pseudostates may not have a trigger.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-outgoing_pseudostates-_specification">
+ <language>OCL</language>
+ <body>source.oclIsKindOf(Pseudostate) and (source.kind &lt;> #initial)) implies trigger->isEmpty()</body>
</specification>
</ownedRule>
<ownedRule xmi:id="Transition-signatures_compatible" name="signatures_compatible" constrainedElement="Transition">
@@ -13170,42 +13151,46 @@ and self.second.type->size() = 0
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-state_is_local" name="state_is_local" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-state_is_local-_ownedComment.0" annotatedElement="Transition-state_is_local">
- <body>A transition with kind local must have a composite state or an entry point as its source.</body>
+ <ownedRule xmi:id="Transition-state_is_internal" name="state_is_internal" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-state_is_internal-_ownedComment.0" annotatedElement="Transition-state_is_internal">
+ <body>A transition with kind internal must have a state as its source, and its source and target must be equal.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_local-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_internal-_specification">
<language>OCL</language>
- <body>(kind = TransitionKind::local) implies
- ((source.oclIsKindOf (State) and source.oclAsType(State).isComposite) or
- (source.oclIsKindOf (Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint))</body>
+ <body>(kind = TransitionKind::internal) implies
+ (source.oclIsKindOf (State) and source = target)</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-initial_transition" name="initial_transition" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-initial_transition-_ownedComment.0" annotatedElement="Transition-initial_transition">
- <body>An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype >.</body>
+ <ownedRule xmi:id="Transition-join_segment_guards" name="join_segment_guards" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-join_segment_guards-_ownedComment.0" annotatedElement="Transition-join_segment_guards">
+ <body>A join segment must not have guards or triggers.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-initial_transition-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-join_segment_guards-_specification">
<language>OCL</language>
- <body>self.source.oclIsKindOf(Pseudostate) implies
-(self.source.oclAsType(Pseudostate).kind = #initial) implies
-(self.source.container = self.stateMachine.top) implies
-((self.trigger->isEmpty) or
-(self.trigger.stereotype.name = 'create'))
-</body>
+ <body>(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-fork_segment_guards" name="fork_segment_guards" constrainedElement="Transition">
- <ownedComment xmi:id="Transition-fork_segment_guards-_ownedComment.0" annotatedElement="Transition-fork_segment_guards">
- <body>A fork segment must not have guards or triggers.</body>
+ <ownedRule xmi:id="Transition-fork_segment_state" name="fork_segment_state" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-fork_segment_state-_ownedComment.0" annotatedElement="Transition-fork_segment_state">
+ <body>A fork segment must always target a state.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-fork_segment_guards-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-fork_segment_state-_specification">
<language>OCL</language>
- <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())</body>
+ <body>(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="Transition-state_is_external" name="state_is_external" constrainedElement="Transition">
+ <ownedComment xmi:id="Transition-state_is_external-_ownedComment.0" annotatedElement="Transition-state_is_external">
+ <body>A transition with kind external can source any vertex except entry points.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-state_is_external-_specification">
+ <language>OCL</language>
+ <body>(kind = TransitionKind::external) implies
+ not (source.oclIsKindOf(Pseudostate) and source.oclAsType(Pseudostate).kind = PseudostateKind::entryPoint)</body>
</specification>
</ownedRule>
- <generalization xmi:id="Transition-_generalization.0" general="Namespace"/>
- <generalization xmi:id="Transition-_generalization.1" general="RedefinableElement"/>
+ <generalization xmi:id="Transition-_generalization.0" general="RedefinableElement"/>
+ <generalization xmi:id="Transition-_generalization.1" general="Namespace"/>
<ownedAttribute xmi:id="Transition-container" name="container" visibility="public" type="Region" subsettedProperty="NamedElement-namespace" association="A_transition_container">
<ownedComment xmi:id="Transition-container-_ownedComment.0" annotatedElement="Transition-container">
<body>Designates the region that owns this transition.</body>
@@ -13273,6 +13258,12 @@ and self.second.type->size() = 0
<ownedComment xmi:id="Transition-isConsistentWith-_ownedComment.0" annotatedElement="Transition-isConsistentWith">
<body>The query isConsistentWith() specifies that a redefining transition is consistent with a redefined transition provided that the redefining transition has the following relation to the redefined transition: A redefining transition redefines all properties of the corresponding redefined transition, except the source state and the trigger.</body>
</ownedComment>
+ <ownedRule xmi:id="Transition-isConsistentWith-pre" name="pre" constrainedElement="Transition-isConsistentWith">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-isConsistentWith-pre-_specification">
+ <language>OCL</language>
+ <body>redefinee.isRedefinitionContextValid(self)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="Transition-isConsistentWith-spec" name="spec" constrainedElement="Transition-isConsistentWith">
<specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-isConsistentWith-spec-_specification">
<language>OCL</language>
@@ -13281,12 +13272,6 @@ and self.second.type->size() = 0
(source() = trans.source() and trigger() = tran.trigger())</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="Transition-isConsistentWith-pre" name="pre" constrainedElement="Transition-isConsistentWith">
- <specification xmi:type="uml:OpaqueExpression" xmi:id="Transition-isConsistentWith-pre-_specification">
- <language>OCL</language>
- <body>redefinee.isRedefinitionContextValid(self)</body>
- </specification>
- </ownedRule>
<ownedParameter xmi:id="Transition-isConsistentWith-result" name="result" visibility="public" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
@@ -13312,10 +13297,10 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="Trigger" name="Trigger">
<ownedComment xmi:id="Trigger-_ownedComment.0" annotatedElement="Trigger">
- <body>A trigger relates an event to a behavior that may affect an instance of the classifier.</body>
+ <body>A trigger specification may be qualified by the port on which the event occurred.</body>
</ownedComment>
<ownedComment xmi:id="Trigger-_ownedComment.1" annotatedElement="Trigger">
- <body>A trigger specification may be qualified by the port on which the event occurred.</body>
+ <body>A trigger relates an event to a behavior that may affect an instance of the classifier.</body>
</ownedComment>
<generalization xmi:id="Trigger-_generalization.0" general="NamedElement"/>
<ownedAttribute xmi:id="Trigger-event" name="event" visibility="public" type="Event" association="A_event_trigger">
@@ -13363,18 +13348,18 @@ endif</body>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="TypedElement" name="TypedElement" isAbstract="true">
<ownedComment xmi:id="TypedElement-_ownedComment.0" annotatedElement="TypedElement">
- <body>A typed element has a type.</body>
+ <body>A typed element is a kind of named element that represents an element with a type.</body>
</ownedComment>
<ownedComment xmi:id="TypedElement-_ownedComment.1" annotatedElement="TypedElement">
- <body>A typed element is a kind of named element that represents an element with a type.</body>
+ <body>A typed element has a type.</body>
</ownedComment>
<generalization xmi:id="TypedElement-_generalization.0" general="NamedElement"/>
<ownedAttribute xmi:id="TypedElement-type" name="type" visibility="public" type="Type" association="A_type_typedElement">
<ownedComment xmi:id="TypedElement-type-_ownedComment.0" annotatedElement="TypedElement-type">
- <body>The type of the TypedElement.</body>
+ <body>This information is derived from the return result for this Operation.</body>
</ownedComment>
<ownedComment xmi:id="TypedElement-type-_ownedComment.1" annotatedElement="TypedElement-type">
- <body>This information is derived from the return result for this Operation.</body>
+ <body>The type of the TypedElement.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="TypedElement-type-_lowerValue"/>
</ownedAttribute>
@@ -13383,29 +13368,29 @@ endif</body>
<ownedComment xmi:id="UnmarshallAction-_ownedComment.0" annotatedElement="UnmarshallAction">
<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="UnmarshallAction-structural_feature" name="structural_feature" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-structural_feature-_ownedComment.0" annotatedElement="UnmarshallAction-structural_feature">
- <body>The unmarshall classifier must have at least one structural feature.</body>
+ <ownedRule xmi:id="UnmarshallAction-same_type" name="same_type" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-same_type-_ownedComment.0" annotatedElement="UnmarshallAction-same_type">
+ <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="UnmarshallAction-structural_feature-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-same_type-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UnmarshallAction-number_of_result" name="number_of_result" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-number_of_result-_ownedComment.0" annotatedElement="UnmarshallAction-number_of_result">
- <body>The number of result output pins must be the same as the number of structural features of the unmarshall classifier.</body>
+ <ownedRule xmi:id="UnmarshallAction-structural_feature" name="structural_feature" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-structural_feature-_ownedComment.0" annotatedElement="UnmarshallAction-structural_feature">
+ <body>The unmarshall classifier must have at least one structural feature.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-number_of_result-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-structural_feature-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UnmarshallAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-multiplicity_of_result-_ownedComment.0" annotatedElement="UnmarshallAction-multiplicity_of_result">
- <body>The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.</body>
+ <ownedRule xmi:id="UnmarshallAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-multiplicity_of_object-_ownedComment.0" annotatedElement="UnmarshallAction-multiplicity_of_object">
+ <body>The multiplicity of the object input pin is 1..1</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-multiplicity_of_result-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-multiplicity_of_object-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -13419,29 +13404,29 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UnmarshallAction-unmarshallType_is_classifier" name="unmarshallType_is_classifier" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-unmarshallType_is_classifier-_ownedComment.0" annotatedElement="UnmarshallAction-unmarshallType_is_classifier">
- <body>unmarshallType must be a Classifier with ordered attributes</body>
+ <ownedRule xmi:id="UnmarshallAction-number_of_result" name="number_of_result" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-number_of_result-_ownedComment.0" annotatedElement="UnmarshallAction-number_of_result">
+ <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="UnmarshallAction-unmarshallType_is_classifier-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-number_of_result-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UnmarshallAction-multiplicity_of_object" name="multiplicity_of_object" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-multiplicity_of_object-_ownedComment.0" annotatedElement="UnmarshallAction-multiplicity_of_object">
- <body>The multiplicity of the object input pin is 1..1</body>
+ <ownedRule xmi:id="UnmarshallAction-unmarshallType_is_classifier" name="unmarshallType_is_classifier" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-unmarshallType_is_classifier-_ownedComment.0" annotatedElement="UnmarshallAction-unmarshallType_is_classifier">
+ <body>unmarshallType must be a Classifier with ordered attributes</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-multiplicity_of_object-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-unmarshallType_is_classifier-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UnmarshallAction-same_type" name="same_type" constrainedElement="UnmarshallAction">
- <ownedComment xmi:id="UnmarshallAction-same_type-_ownedComment.0" annotatedElement="UnmarshallAction-same_type">
- <body>The type of the object input pin must be the same as the unmarshall classifier.</body>
+ <ownedRule xmi:id="UnmarshallAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="UnmarshallAction">
+ <ownedComment xmi:id="UnmarshallAction-multiplicity_of_result-_ownedComment.0" annotatedElement="UnmarshallAction-multiplicity_of_result">
+ <body>The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-same_type-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UnmarshallAction-multiplicity_of_result-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -13474,6 +13459,24 @@ endif</body>
<ownedComment xmi:id="UseCase-_ownedComment.0" annotatedElement="UseCase">
<body>A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.</body>
</ownedComment>
+ <ownedRule xmi:id="UseCase-must_have_name" name="must_have_name" constrainedElement="UseCase">
+ <ownedComment xmi:id="UseCase-must_have_name-_ownedComment.0" annotatedElement="UseCase-must_have_name">
+ <body>A UseCase must have a name.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UseCase-must_have_name-_specification">
+ <language>OCL</language>
+ <body>self.name -> notEmpty ()</body>
+ </specification>
+ </ownedRule>
+ <ownedRule xmi:id="UseCase-cannot_include_self" name="cannot_include_self" constrainedElement="UseCase">
+ <ownedComment xmi:id="UseCase-cannot_include_self-_ownedComment.0" annotatedElement="UseCase-cannot_include_self">
+ <body>A use case cannot include use cases that directly or indirectly include it.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="UseCase-cannot_include_self-_specification">
+ <language>OCL</language>
+ <body>not self.allIncludedUseCases()->includes(self)</body>
+ </specification>
+ </ownedRule>
<ownedRule xmi:id="UseCase-binary_associations" name="binary_associations" constrainedElement="UseCase">
<ownedComment xmi:id="UseCase-binary_associations-_ownedComment.0" annotatedElement="UseCase-binary_associations">
<body>UseCases can only be involved in binary Associations.</body>
@@ -13492,24 +13495,6 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="UseCase-cannot_include_self" name="cannot_include_self" constrainedElement="UseCase">
- <ownedComment xmi:id="UseCase-cannot_include_self-_ownedComment.0" annotatedElement="UseCase-cannot_include_self">
- <body>A use case cannot include use cases that directly or indirectly include it.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UseCase-cannot_include_self-_specification">
- <language>OCL</language>
- <body>not self.allIncludedUseCases()->includes(self)</body>
- </specification>
- </ownedRule>
- <ownedRule xmi:id="UseCase-must_have_name" name="must_have_name" constrainedElement="UseCase">
- <ownedComment xmi:id="UseCase-must_have_name-_ownedComment.0" annotatedElement="UseCase-must_have_name">
- <body>A UseCase must have a name.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="UseCase-must_have_name-_specification">
- <language>OCL</language>
- <body>self.name -> notEmpty ()</body>
- </specification>
- </ownedRule>
<generalization xmi:id="UseCase-_generalization.0" general="BehavioredClassifier"/>
<ownedAttribute xmi:id="UseCase-extend" name="extend" visibility="public" type="Extend" aggregation="composite" subsettedProperty="A_source_directedRelationship-directedRelationship Namespace-ownedMember" association="A_extend_extension">
<ownedComment xmi:id="UseCase-extend-_ownedComment.0" annotatedElement="UseCase-extend">
@@ -13559,20 +13544,20 @@ endif</body>
<ownedComment xmi:id="ValuePin-_ownedComment.0" annotatedElement="ValuePin">
<body>A value pin is an input pin that provides a value by evaluating a value specification.</body>
</ownedComment>
- <ownedRule xmi:id="ValuePin-no_incoming_edges" name="no_incoming_edges" constrainedElement="ValuePin">
- <ownedComment xmi:id="ValuePin-no_incoming_edges-_ownedComment.0" annotatedElement="ValuePin-no_incoming_edges">
- <body>Value pins have no incoming edges.</body>
+ <ownedRule xmi:id="ValuePin-compatible_type" name="compatible_type" constrainedElement="ValuePin">
+ <ownedComment xmi:id="ValuePin-compatible_type-_ownedComment.0" annotatedElement="ValuePin-compatible_type">
+ <body>The type of value specification must be compatible with the type of the value pin.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ValuePin-no_incoming_edges-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ValuePin-compatible_type-_specification">
<language>OCL</language>
<body>true</body>
</specification>
</ownedRule>
- <ownedRule xmi:id="ValuePin-compatible_type" name="compatible_type" constrainedElement="ValuePin">
- <ownedComment xmi:id="ValuePin-compatible_type-_ownedComment.0" annotatedElement="ValuePin-compatible_type">
- <body>The type of value specification must be compatible with the type of the value pin.</body>
+ <ownedRule xmi:id="ValuePin-no_incoming_edges" name="no_incoming_edges" constrainedElement="ValuePin">
+ <ownedComment xmi:id="ValuePin-no_incoming_edges-_ownedComment.0" annotatedElement="ValuePin-no_incoming_edges">
+ <body>Value pins have no incoming edges.</body>
</ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="ValuePin-compatible_type-_specification">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="ValuePin-no_incoming_edges-_specification">
<language>OCL</language>
<body>true</body>
</specification>
@@ -13762,8 +13747,8 @@ endif</body>
<body>true</body>
</specification>
</ownedRule>
- <generalization xmi:id="Variable-_generalization.0" general="ConnectableElement"/>
- <generalization xmi:id="Variable-_generalization.1" general="MultiplicityElement"/>
+ <generalization xmi:id="Variable-_generalization.0" general="MultiplicityElement"/>
+ <generalization xmi:id="Variable-_generalization.1" general="ConnectableElement"/>
<ownedAttribute xmi:id="Variable-activityScope" name="activityScope" visibility="public" type="Activity" subsettedProperty="NamedElement-namespace" association="A_variable_activityScope">
<ownedComment xmi:id="Variable-activityScope-_ownedComment.0" annotatedElement="Variable-activityScope">
<body>An activity that owns the variable.</body>
@@ -13910,15 +13895,6 @@ endif
<ownedComment xmi:id="WriteStructuralFeatureAction-_ownedComment.0" annotatedElement="WriteStructuralFeatureAction">
<body>WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values.</body>
</ownedComment>
- <ownedRule xmi:id="WriteStructuralFeatureAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="WriteStructuralFeatureAction">
- <ownedComment xmi:id="WriteStructuralFeatureAction-multiplicity_of_result-_ownedComment.0" annotatedElement="WriteStructuralFeatureAction-multiplicity_of_result">
- <body>The multiplicity of the result output pin must be 1..1.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="WriteStructuralFeatureAction-multiplicity_of_result-_specification">
- <language>OCL</language>
- <body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="WriteStructuralFeatureAction-input_pin" name="input_pin" constrainedElement="WriteStructuralFeatureAction">
<ownedComment xmi:id="WriteStructuralFeatureAction-input_pin-_ownedComment.0" annotatedElement="WriteStructuralFeatureAction-input_pin">
<body>The type of the value input pin is the same as the type of the structural feature.</body>
@@ -13946,6 +13922,15 @@ endif
<body>result->notEmpty() implies self.result.type = self.object.type</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="WriteStructuralFeatureAction-multiplicity_of_result" name="multiplicity_of_result" constrainedElement="WriteStructuralFeatureAction">
+ <ownedComment xmi:id="WriteStructuralFeatureAction-multiplicity_of_result-_ownedComment.0" annotatedElement="WriteStructuralFeatureAction-multiplicity_of_result">
+ <body>The multiplicity of the result output pin must be 1..1.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="WriteStructuralFeatureAction-multiplicity_of_result-_specification">
+ <language>OCL</language>
+ <body>result->notEmpty() implies self.result.multiplicity.is(1,1)</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="WriteStructuralFeatureAction-_generalization.0" general="StructuralFeatureAction"/>
<ownedAttribute xmi:id="WriteStructuralFeatureAction-result" name="result" visibility="public" type="OutputPin" aggregation="composite" subsettedProperty="Action-output" association="A_result_writeStructuralFeatureAction">
<ownedComment xmi:id="WriteStructuralFeatureAction-result-_ownedComment.0" annotatedElement="WriteStructuralFeatureAction-result">
@@ -13964,15 +13949,6 @@ endif
<ownedComment xmi:id="WriteVariableAction-_ownedComment.0" annotatedElement="WriteVariableAction">
<body>WriteVariableAction is an abstract class for variable actions that change variable values.</body>
</ownedComment>
- <ownedRule xmi:id="WriteVariableAction-same_type" name="same_type" constrainedElement="WriteVariableAction">
- <ownedComment xmi:id="WriteVariableAction-same_type-_ownedComment.0" annotatedElement="WriteVariableAction-same_type">
- <body>The type input pin is the same as the type of the variable.</body>
- </ownedComment>
- <specification xmi:type="uml:OpaqueExpression" xmi:id="WriteVariableAction-same_type-_specification">
- <language>OCL</language>
- <body>self.value -> notEmpty() implies self.value.type = self.variable.type</body>
- </specification>
- </ownedRule>
<ownedRule xmi:id="WriteVariableAction-multiplicity" name="multiplicity" constrainedElement="WriteVariableAction">
<ownedComment xmi:id="WriteVariableAction-multiplicity-_ownedComment.0" annotatedElement="WriteVariableAction-multiplicity">
<body>The multiplicity of the input pin is 1..1.</body>
@@ -13982,6 +13958,15 @@ endif
<body>self.value.multiplicity.is(1,1)</body>
</specification>
</ownedRule>
+ <ownedRule xmi:id="WriteVariableAction-same_type" name="same_type" constrainedElement="WriteVariableAction">
+ <ownedComment xmi:id="WriteVariableAction-same_type-_ownedComment.0" annotatedElement="WriteVariableAction-same_type">
+ <body>The type input pin is the same as the type of the variable.</body>
+ </ownedComment>
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="WriteVariableAction-same_type-_specification">
+ <language>OCL</language>
+ <body>self.value -> notEmpty() implies self.value.type = self.variable.type</body>
+ </specification>
+ </ownedRule>
<generalization xmi:id="WriteVariableAction-_generalization.0" general="VariableAction"/>
<ownedAttribute xmi:id="WriteVariableAction-value" name="value" visibility="public" type="InputPin" aggregation="composite" subsettedProperty="Action-input" association="A_value_writeVariableAction">
<ownedComment xmi:id="WriteVariableAction-value-_ownedComment.0" annotatedElement="WriteVariableAction-value">
@@ -14384,248 +14369,248 @@ endif
<appliedProfile href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
</profileApplication>
</uml:Model>
- <Ecore:EPackage xmi:id="_oYsPUMlAEeC3qc59rLjnlw" base_Package="_0" packageName="uml" nsPrefix="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML"/>
- <l3:Metamodel xmi:id="_yHWtAMlAEeC3qc59rLjnlw" base_Model="_0"/>
- <l2:Metaclass xmi:id="_yJpMAMlAEeC3qc59rLjnlw" base_Class="Abstraction"/>
- <l2:Metaclass xmi:id="_yJpzEMlAEeC3qc59rLjnlw" base_Class="AcceptCallAction"/>
- <l2:Metaclass xmi:id="_yJrBMMlAEeC3qc59rLjnlw" base_Class="AcceptEventAction"/>
- <l2:Metaclass xmi:id="_yJsPUMlAEeC3qc59rLjnlw" base_Class="Action"/>
- <l2:Metaclass xmi:id="_yJurkMlAEeC3qc59rLjnlw" base_Class="ActionExecutionSpecification"/>
- <l2:Metaclass xmi:id="_yJv5sMlAEeC3qc59rLjnlw" base_Class="ActionInputPin"/>
- <l2:Metaclass xmi:id="_yJxH0MlAEeC3qc59rLjnlw" base_Class="Activity"/>
- <l2:Metaclass xmi:id="_yJ5DoMlAEeC3qc59rLjnlw" base_Class="ActivityEdge"/>
- <l2:Metaclass xmi:id="_yJ9VEMlAEeC3qc59rLjnlw" base_Class="ActivityFinalNode"/>
- <l2:Metaclass xmi:id="_yJ9VEclAEeC3qc59rLjnlw" base_Class="ActivityGroup"/>
- <l2:Metaclass xmi:id="_yKCNkMlAEeC3qc59rLjnlw" base_Class="ActivityNode"/>
- <l2:Metaclass xmi:id="_yKEp0MlAEeC3qc59rLjnlw" base_Class="ActivityParameterNode"/>
- <l2:Metaclass xmi:id="_yKGfAMlAEeC3qc59rLjnlw" base_Class="ActivityPartition"/>
- <l2:Metaclass xmi:id="_yKI7QMlAEeC3qc59rLjnlw" base_Class="Actor"/>
- <l2:Metaclass xmi:id="_yKJiUMlAEeC3qc59rLjnlw" base_Class="AddStructuralFeatureValueAction"/>
- <l2:Metaclass xmi:id="_yKKwcMlAEeC3qc59rLjnlw" base_Class="AddVariableValueAction"/>
- <l2:Metaclass xmi:id="_yKL-kMlAEeC3qc59rLjnlw" base_Class="AnyReceiveEvent"/>
- <l2:Metaclass xmi:id="_yKL-kclAEeC3qc59rLjnlw" base_Class="Artifact"/>
- <l2:Metaclass xmi:id="_yKNzwMlAEeC3qc59rLjnlw" base_Class="Association"/>
- <l2:Metaclass xmi:id="_yKQ3EMlAEeC3qc59rLjnlw" base_Class="AssociationClass"/>
- <l2:Metaclass xmi:id="_yKReIMlAEeC3qc59rLjnlw" base_Class="Behavior"/>
- <l2:Metaclass xmi:id="_yKUhcMlAEeC3qc59rLjnlw" base_Class="BehaviorExecutionSpecification"/>
- <l2:Metaclass xmi:id="_yKVIgMlAEeC3qc59rLjnlw" base_Class="BehavioralFeature"/>
- <l2:Metaclass xmi:id="_yKW9sMlAEeC3qc59rLjnlw" base_Class="BehavioredClassifier"/>
- <l2:Metaclass xmi:id="_yKYL0MlAEeC3qc59rLjnlw" base_Class="BroadcastSignalAction"/>
- <l2:Metaclass xmi:id="_yKYy4MlAEeC3qc59rLjnlw" base_Class="CallAction"/>
- <l2:Metaclass xmi:id="_yKaBAMlAEeC3qc59rLjnlw" base_Class="CallBehaviorAction"/>
- <l2:Metaclass xmi:id="_yKbPIMlAEeC3qc59rLjnlw" base_Class="CallEvent"/>
- <l2:Metaclass xmi:id="_yKbPIclAEeC3qc59rLjnlw" base_Class="CallOperationAction"/>
- <l2:Metaclass xmi:id="_yKcdQMlAEeC3qc59rLjnlw" base_Class="CentralBufferNode"/>
- <l2:Metaclass xmi:id="_yKdEUMlAEeC3qc59rLjnlw" base_Class="ChangeEvent"/>
- <l2:Metaclass xmi:id="_yKdEUclAEeC3qc59rLjnlw" base_Class="Class"/>
- <l2:Metaclass xmi:id="_yKhVwMlAEeC3qc59rLjnlw" base_Class="Classifier"/>
- <l2:Metaclass xmi:id="_yKrt0MlAEeC3qc59rLjnlw" base_Class="ClassifierTemplateParameter"/>
- <l2:Metaclass xmi:id="_yKsU4MlAEeC3qc59rLjnlw" base_Class="Clause"/>
- <l2:Metaclass xmi:id="_yKuxIMlAEeC3qc59rLjnlw" base_Class="ClearAssociationAction"/>
- <l2:Metaclass xmi:id="_yKvYMMlAEeC3qc59rLjnlw" base_Class="ClearStructuralFeatureAction"/>
- <l2:Metaclass xmi:id="_yKwmUMlAEeC3qc59rLjnlw" base_Class="ClearVariableAction"/>
- <l2:Metaclass xmi:id="_yKwmUclAEeC3qc59rLjnlw" base_Class="Collaboration"/>
- <l2:Metaclass xmi:id="_yKxNYMlAEeC3qc59rLjnlw" base_Class="CollaborationUse"/>
- <l2:Metaclass xmi:id="_yKybgMlAEeC3qc59rLjnlw" base_Class="CombinedFragment"/>
- <l2:Metaclass xmi:id="_yK0QsMlAEeC3qc59rLjnlw" base_Class="Comment"/>
- <l2:Metaclass xmi:id="_yK1e0MlAEeC3qc59rLjnlw" base_Class="CommunicationPath"/>
- <l2:Metaclass xmi:id="_yK1e0clAEeC3qc59rLjnlw" base_Class="Component"/>
- <l2:Metaclass xmi:id="_yK5JMMlAEeC3qc59rLjnlw" base_Class="ComponentRealization"/>
- <l2:Metaclass xmi:id="_yK5wQMlAEeC3qc59rLjnlw" base_Class="ConditionalNode"/>
- <l2:Metaclass xmi:id="_yK8MgMlAEeC3qc59rLjnlw" base_Class="ConnectableElement"/>
- <l2:Metaclass xmi:id="_yK9aoMlAEeC3qc59rLjnlw" base_Class="ConnectableElementTemplateParameter"/>
- <l2:Metaclass xmi:id="_yK-BsMlAEeC3qc59rLjnlw" base_Class="ConnectionPointReference"/>
- <l2:Metaclass xmi:id="_yK_P0MlAEeC3qc59rLjnlw" base_Class="Connector"/>
- <l2:Metaclass xmi:id="_yLCTIMlAEeC3qc59rLjnlw" base_Class="ConnectorEnd"/>
- <l2:Metaclass xmi:id="_yLEIUMlAEeC3qc59rLjnlw" base_Class="ConsiderIgnoreFragment"/>
- <l2:Metaclass xmi:id="_yLEvYMlAEeC3qc59rLjnlw" base_Class="Constraint"/>
- <l2:Metaclass xmi:id="_yLK2AMlAEeC3qc59rLjnlw" base_Class="Continuation"/>
- <l2:Metaclass xmi:id="_yLMEIMlAEeC3qc59rLjnlw" base_Class="ControlFlow"/>
- <l2:Metaclass xmi:id="_yLMrMMlAEeC3qc59rLjnlw" base_Class="ControlNode"/>
- <l2:Metaclass xmi:id="_yLMrMclAEeC3qc59rLjnlw" base_Class="CreateLinkAction"/>
- <l2:Metaclass xmi:id="_yLNSQMlAEeC3qc59rLjnlw" base_Class="CreateLinkObjectAction"/>
- <l2:Metaclass xmi:id="_yLOgYMlAEeC3qc59rLjnlw" base_Class="CreateObjectAction"/>
- <l2:Metaclass xmi:id="_yLPugMlAEeC3qc59rLjnlw" base_Class="DataStoreNode"/>
- <l2:Metaclass xmi:id="_yLPugclAEeC3qc59rLjnlw" base_Class="DataType"/>
- <l2:Metaclass xmi:id="_yLRjsMlAEeC3qc59rLjnlw" base_Class="DecisionNode"/>
- <l2:Metaclass xmi:id="_yLTY4MlAEeC3qc59rLjnlw" base_Class="Dependency"/>
- <l2:Metaclass xmi:id="_yLT_8MlAEeC3qc59rLjnlw" base_Class="DeployedArtifact"/>
- <l2:Metaclass xmi:id="_yLUnAMlAEeC3qc59rLjnlw" base_Class="Deployment"/>
- <l2:Metaclass xmi:id="_yLVOEMlAEeC3qc59rLjnlw" base_Class="DeploymentSpecification"/>
- <l2:Metaclass xmi:id="_yLWcMMlAEeC3qc59rLjnlw" base_Class="DeploymentTarget"/>
- <l2:Metaclass xmi:id="_yLXqUMlAEeC3qc59rLjnlw" base_Class="DestroyLinkAction"/>
- <l2:Metaclass xmi:id="_yLYRYMlAEeC3qc59rLjnlw" base_Class="DestroyObjectAction"/>
- <l2:Metaclass xmi:id="_yLZfgMlAEeC3qc59rLjnlw" base_Class="DestructionOccurrenceSpecification"/>
- <l2:Metaclass xmi:id="_yLaGkMlAEeC3qc59rLjnlw" base_Class="Device"/>
- <l2:Metaclass xmi:id="_yLaGkclAEeC3qc59rLjnlw" base_Class="DirectedRelationship"/>
- <l2:Metaclass xmi:id="_yLatoMlAEeC3qc59rLjnlw" base_Class="Duration"/>
- <l2:Metaclass xmi:id="_yLbUsMlAEeC3qc59rLjnlw" base_Class="DurationConstraint"/>
- <l2:Metaclass xmi:id="_yLci0MlAEeC3qc59rLjnlw" base_Class="DurationInterval"/>
- <l2:Metaclass xmi:id="_yLdJ4MlAEeC3qc59rLjnlw" base_Class="DurationObservation"/>
- <l2:Metaclass xmi:id="_yLdw8MlAEeC3qc59rLjnlw" base_Class="Element"/>
- <l2:Metaclass xmi:id="_yLfmIMlAEeC3qc59rLjnlw" base_Class="ElementImport"/>
- <l2:Metaclass xmi:id="_yLhbUMlAEeC3qc59rLjnlw" base_Class="EncapsulatedClassifier"/>
- <l2:Metaclass xmi:id="_yLipcMlAEeC3qc59rLjnlw" base_Class="Enumeration"/>
- <l2:Metaclass xmi:id="_yLipcclAEeC3qc59rLjnlw" base_Class="EnumerationLiteral"/>
- <l2:Metaclass xmi:id="_yLj3kMlAEeC3qc59rLjnlw" base_Class="Event"/>
- <l2:Metaclass xmi:id="_yLkeoMlAEeC3qc59rLjnlw" base_Class="ExceptionHandler"/>
- <l2:Metaclass xmi:id="_yLmT0MlAEeC3qc59rLjnlw" base_Class="ExecutableNode"/>
- <l2:Metaclass xmi:id="_yLm64MlAEeC3qc59rLjnlw" base_Class="ExecutionEnvironment"/>
- <l2:Metaclass xmi:id="_yLm64clAEeC3qc59rLjnlw" base_Class="ExecutionOccurrenceSpecification"/>
- <l2:Metaclass xmi:id="_yLnh8MlAEeC3qc59rLjnlw" base_Class="ExecutionSpecification"/>
- <l2:Metaclass xmi:id="_yLoJAMlAEeC3qc59rLjnlw" base_Class="ExpansionNode"/>
- <l2:Metaclass xmi:id="_yLpXIMlAEeC3qc59rLjnlw" base_Class="ExpansionRegion"/>
- <l2:Metaclass xmi:id="_yLqlQMlAEeC3qc59rLjnlw" base_Class="Expression"/>
- <l2:Metaclass xmi:id="_yLrMUMlAEeC3qc59rLjnlw" base_Class="Extend"/>
- <l2:Metaclass xmi:id="_yLsacMlAEeC3qc59rLjnlw" base_Class="Extension"/>
- <l2:Metaclass xmi:id="_yLu2sMlAEeC3qc59rLjnlw" base_Class="ExtensionEnd"/>
- <l2:Metaclass xmi:id="_yLwr4MlAEeC3qc59rLjnlw" base_Class="ExtensionPoint"/>
- <l2:Metaclass xmi:id="_yLxS8MlAEeC3qc59rLjnlw" base_Class="Feature"/>
- <l2:Metaclass xmi:id="_yLx6AMlAEeC3qc59rLjnlw" base_Class="FinalNode"/>
- <l2:Metaclass xmi:id="_yLyhEMlAEeC3qc59rLjnlw" base_Class="FinalState"/>
- <l2:Metaclass xmi:id="_yLzvMMlAEeC3qc59rLjnlw" base_Class="FlowFinalNode"/>
- <l2:Metaclass xmi:id="_yL0WQMlAEeC3qc59rLjnlw" base_Class="ForkNode"/>
- <l2:Metaclass xmi:id="_yL09UMlAEeC3qc59rLjnlw" base_Class="FunctionBehavior"/>
- <l2:Metaclass xmi:id="_yL1kYMlAEeC3qc59rLjnlw" base_Class="Gate"/>
- <l2:Metaclass xmi:id="_yL2LcMlAEeC3qc59rLjnlw" base_Class="GeneralOrdering"/>
- <l2:Metaclass xmi:id="_yL2ygMlAEeC3qc59rLjnlw" base_Class="Generalization"/>
- <l2:Metaclass xmi:id="_yL4AoMlAEeC3qc59rLjnlw" base_Class="GeneralizationSet"/>
- <l2:Metaclass xmi:id="_yL510MlAEeC3qc59rLjnlw" base_Class="Image"/>
- <l2:Metaclass xmi:id="_yL6c4MlAEeC3qc59rLjnlw" base_Class="Include"/>
- <l2:Metaclass xmi:id="_yL7D8MlAEeC3qc59rLjnlw" base_Class="InformationFlow"/>
- <l2:Metaclass xmi:id="_yL9gMMlAEeC3qc59rLjnlw" base_Class="InformationItem"/>
- <l2:Metaclass xmi:id="_yL-uUMlAEeC3qc59rLjnlw" base_Class="InitialNode"/>
- <l2:Metaclass xmi:id="_yL_VYMlAEeC3qc59rLjnlw" base_Class="InputPin"/>
- <l2:Metaclass xmi:id="_yL_8cMlAEeC3qc59rLjnlw" base_Class="InstanceSpecification"/>
- <l2:Metaclass xmi:id="_yMBxoMlAEeC3qc59rLjnlw" base_Class="InstanceValue"/>
- <l2:Metaclass xmi:id="_yMCYsMlAEeC3qc59rLjnlw" base_Class="Interaction"/>
- <l2:Metaclass xmi:id="_yMEN4MlAEeC3qc59rLjnlw" base_Class="InteractionConstraint"/>
- <l2:Metaclass xmi:id="_yMGDEMlAEeC3qc59rLjnlw" base_Class="InteractionFragment"/>
- <l2:Metaclass xmi:id="_yMHRMMlAEeC3qc59rLjnlw" base_Class="InteractionOperand"/>
- <l2:Metaclass xmi:id="_yMJGYMlAEeC3qc59rLjnlw" base_Class="InteractionUse"/>
- <l2:Metaclass xmi:id="_yMLioMlAEeC3qc59rLjnlw" base_Class="Interface"/>
- <l2:Metaclass xmi:id="_yMNX0MlAEeC3qc59rLjnlw" base_Class="InterfaceRealization"/>
- <l2:Metaclass xmi:id="_yMN-4MlAEeC3qc59rLjnlw" base_Class="InterruptibleActivityRegion"/>
- <l2:Metaclass xmi:id="_yMPNAMlAEeC3qc59rLjnlw" base_Class="Interval"/>
- <l2:Metaclass xmi:id="_yMP0EMlAEeC3qc59rLjnlw" base_Class="IntervalConstraint"/>
- <l2:Metaclass xmi:id="_yMQbIMlAEeC3qc59rLjnlw" base_Class="InvocationAction"/>
- <l2:Metaclass xmi:id="_yMRCMMlAEeC3qc59rLjnlw" base_Class="JoinNode"/>
- <l2:Metaclass xmi:id="_yMSQUMlAEeC3qc59rLjnlw" base_Class="Lifeline"/>
- <l2:Metaclass xmi:id="_yMUFgMlAEeC3qc59rLjnlw" base_Class="LinkAction"/>
- <l2:Metaclass xmi:id="_yMV6sMlAEeC3qc59rLjnlw" base_Class="LinkEndCreationData"/>
- <l2:Metaclass xmi:id="_yMXI0MlAEeC3qc59rLjnlw" base_Class="LinkEndData"/>
- <l2:Metaclass xmi:id="_yMY-AMlAEeC3qc59rLjnlw" base_Class="LinkEndDestructionData"/>
- <l2:Metaclass xmi:id="_yMaMIMlAEeC3qc59rLjnlw" base_Class="LiteralBoolean"/>
- <l2:Metaclass xmi:id="_yMbaQMlAEeC3qc59rLjnlw" base_Class="LiteralInteger"/>
- <l2:Metaclass xmi:id="_yMcoYMlAEeC3qc59rLjnlw" base_Class="LiteralNull"/>
- <l2:Metaclass xmi:id="_yMdPcMlAEeC3qc59rLjnlw" base_Class="LiteralReal"/>
- <l2:Metaclass xmi:id="_yMedkMlAEeC3qc59rLjnlw" base_Class="LiteralSpecification"/>
- <l2:Metaclass xmi:id="_yMfEoMlAEeC3qc59rLjnlw" base_Class="LiteralString"/>
- <l2:Metaclass xmi:id="_yMgSwMlAEeC3qc59rLjnlw" base_Class="LiteralUnlimitedNatural"/>
- <l2:Metaclass xmi:id="_yMhg4MlAEeC3qc59rLjnlw" base_Class="LoopNode"/>
- <l2:Metaclass xmi:id="_yMkkMMlAEeC3qc59rLjnlw" base_Class="Manifestation"/>
- <l2:Metaclass xmi:id="_yMlLQMlAEeC3qc59rLjnlw" base_Class="MergeNode"/>
- <l2:Metaclass xmi:id="_yMlyUMlAEeC3qc59rLjnlw" base_Class="Message"/>
- <l2:Metaclass xmi:id="_yMpcsMlAEeC3qc59rLjnlw" base_Class="MessageEnd"/>
- <l2:Metaclass xmi:id="_yMqDwMlAEeC3qc59rLjnlw" base_Class="MessageEvent"/>
- <l2:Metaclass xmi:id="_yMqDwclAEeC3qc59rLjnlw" base_Class="MessageOccurrenceSpecification"/>
- <l2:Metaclass xmi:id="_yMqq0MlAEeC3qc59rLjnlw" base_Class="Model"/>
- <l2:Metaclass xmi:id="_yMrR4MlAEeC3qc59rLjnlw" base_Class="MultiplicityElement"/>
- <l2:Metaclass xmi:id="_yMx_kMlAEeC3qc59rLjnlw" base_Class="NamedElement"/>
- <l2:Metaclass xmi:id="_yM24EMlAEeC3qc59rLjnlw" base_Class="Namespace"/>
- <l2:Metaclass xmi:id="_yM8-sMlAEeC3qc59rLjnlw" base_Class="Node"/>
- <l2:Metaclass xmi:id="_yM9lwMlAEeC3qc59rLjnlw" base_Class="ObjectFlow"/>
- <l2:Metaclass xmi:id="_yNApEMlAEeC3qc59rLjnlw" base_Class="ObjectNode"/>
- <l2:Metaclass xmi:id="_yNDFUMlAEeC3qc59rLjnlw" base_Class="Observation"/>
- <l2:Metaclass xmi:id="_yNDFUclAEeC3qc59rLjnlw" base_Class="OccurrenceSpecification"/>
- <l2:Metaclass xmi:id="_yNETcMlAEeC3qc59rLjnlw" base_Class="OpaqueAction"/>
- <l2:Metaclass xmi:id="_yNGIoMlAEeC3qc59rLjnlw" base_Class="OpaqueBehavior"/>
- <l2:Metaclass xmi:id="_yNGvsMlAEeC3qc59rLjnlw" base_Class="OpaqueExpression"/>
- <l2:Metaclass xmi:id="_yNLBIMlAEeC3qc59rLjnlw" base_Class="Operation"/>
- <l2:Metaclass xmi:id="_yNTkAMlAEeC3qc59rLjnlw" base_Class="OperationTemplateParameter"/>
- <l2:Metaclass xmi:id="_yNULEMlAEeC3qc59rLjnlw" base_Class="OutputPin"/>
- <l2:Metaclass xmi:id="_yNUyIMlAEeC3qc59rLjnlw" base_Class="Package"/>
- <l2:Metaclass xmi:id="_yNbf0MlAEeC3qc59rLjnlw" base_Class="PackageImport"/>
- <l2:Metaclass xmi:id="_yNct8MlAEeC3qc59rLjnlw" base_Class="PackageMerge"/>
- <l2:Metaclass xmi:id="_yNdVAMlAEeC3qc59rLjnlw" base_Class="PackageableElement"/>
- <l2:Metaclass xmi:id="_yNd8EMlAEeC3qc59rLjnlw" base_Class="Parameter"/>
- <l2:Metaclass xmi:id="_yNhmcMlAEeC3qc59rLjnlw" base_Class="ParameterSet"/>
- <l2:Metaclass xmi:id="_yNjboMlAEeC3qc59rLjnlw" base_Class="ParameterableElement"/>
- <l2:Metaclass xmi:id="_yNkpwMlAEeC3qc59rLjnlw" base_Class="PartDecomposition"/>
- <l2:Metaclass xmi:id="_yNl34MlAEeC3qc59rLjnlw" base_Class="Pin"/>
- <l2:Metaclass xmi:id="_yNnGAMlAEeC3qc59rLjnlw" base_Class="Port"/>
- <l2:Metaclass xmi:id="_yNqwYMlAEeC3qc59rLjnlw" base_Class="PrimitiveType"/>
- <l2:Metaclass xmi:id="_yNrXcMlAEeC3qc59rLjnlw" base_Class="Profile"/>
- <l2:Metaclass xmi:id="_yNslkMlAEeC3qc59rLjnlw" base_Class="ProfileApplication"/>
- <l2:Metaclass xmi:id="_yNtMoMlAEeC3qc59rLjnlw" base_Class="Property"/>
- <l2:Metaclass xmi:id="_yN4y0MlAEeC3qc59rLjnlw" base_Class="ProtocolConformance"/>
- <l2:Metaclass xmi:id="_yN5Z4MlAEeC3qc59rLjnlw" base_Class="ProtocolStateMachine"/>
- <l2:Metaclass xmi:id="_yN7PEMlAEeC3qc59rLjnlw" base_Class="ProtocolTransition"/>
- <l2:Metaclass xmi:id="_yN9EQMlAEeC3qc59rLjnlw" base_Class="Pseudostate"/>
- <l2:Metaclass xmi:id="_yOAHkMlAEeC3qc59rLjnlw" base_Class="QualifierValue"/>
- <l2:Metaclass xmi:id="_yOB8wMlAEeC3qc59rLjnlw" base_Class="RaiseExceptionAction"/>
- <l2:Metaclass xmi:id="_yOB8wclAEeC3qc59rLjnlw" base_Class="ReadExtentAction"/>
- <l2:Metaclass xmi:id="_yODK4MlAEeC3qc59rLjnlw" base_Class="ReadIsClassifiedObjectAction"/>
- <l2:Metaclass xmi:id="_yOFAEMlAEeC3qc59rLjnlw" base_Class="ReadLinkAction"/>
- <l2:Metaclass xmi:id="_yOG1QMlAEeC3qc59rLjnlw" base_Class="ReadLinkObjectEndAction"/>
- <l2:Metaclass xmi:id="_yOJRgMlAEeC3qc59rLjnlw" base_Class="ReadLinkObjectEndQualifierAction"/>
- <l2:Metaclass xmi:id="_yOLtwMlAEeC3qc59rLjnlw" base_Class="ReadSelfAction"/>
- <l2:Metaclass xmi:id="_yOOKAMlAEeC3qc59rLjnlw" base_Class="ReadStructuralFeatureAction"/>
- <l2:Metaclass xmi:id="_yOOxEMlAEeC3qc59rLjnlw" base_Class="ReadVariableAction"/>
- <l2:Metaclass xmi:id="_yOP_MMlAEeC3qc59rLjnlw" base_Class="Realization"/>
- <l2:Metaclass xmi:id="_yOP_MclAEeC3qc59rLjnlw" base_Class="Reception"/>
- <l2:Metaclass xmi:id="_yOQmQMlAEeC3qc59rLjnlw" base_Class="ReclassifyObjectAction"/>
- <l2:Metaclass xmi:id="_yOTCgMlAEeC3qc59rLjnlw" base_Class="RedefinableElement"/>
- <l2:Metaclass xmi:id="_yOVewMlAEeC3qc59rLjnlw" base_Class="RedefinableTemplateSignature"/>
- <l2:Metaclass xmi:id="_yOYiEMlAEeC3qc59rLjnlw" base_Class="ReduceAction"/>
- <l2:Metaclass xmi:id="_yOaXQMlAEeC3qc59rLjnlw" base_Class="Region"/>
- <l2:Metaclass xmi:id="_yOeosMlAEeC3qc59rLjnlw" base_Class="Relationship"/>
- <l2:Metaclass xmi:id="_yOfPwMlAEeC3qc59rLjnlw" base_Class="RemoveStructuralFeatureValueAction"/>
- <l2:Metaclass xmi:id="_yOgd4MlAEeC3qc59rLjnlw" base_Class="RemoveVariableValueAction"/>
- <l2:Metaclass xmi:id="_yOhsAMlAEeC3qc59rLjnlw" base_Class="ReplyAction"/>
- <l2:Metaclass xmi:id="_yOi6IMlAEeC3qc59rLjnlw" base_Class="SendObjectAction"/>
- <l2:Metaclass xmi:id="_yOjhMMlAEeC3qc59rLjnlw" base_Class="SendSignalAction"/>
- <l2:Metaclass xmi:id="_yOkvUMlAEeC3qc59rLjnlw" base_Class="SequenceNode"/>
- <l2:Metaclass xmi:id="_yOlWYMlAEeC3qc59rLjnlw" base_Class="Signal"/>
- <l2:Metaclass xmi:id="_yOl9cMlAEeC3qc59rLjnlw" base_Class="SignalEvent"/>
- <l2:Metaclass xmi:id="_yOmkgMlAEeC3qc59rLjnlw" base_Class="Slot"/>
- <l2:Metaclass xmi:id="_yOnLkMlAEeC3qc59rLjnlw" base_Class="StartClassifierBehaviorAction"/>
- <l2:Metaclass xmi:id="_yOoZsMlAEeC3qc59rLjnlw" base_Class="StartObjectBehaviorAction"/>
- <l2:Metaclass xmi:id="_yOpn0MlAEeC3qc59rLjnlw" base_Class="State"/>
- <l2:Metaclass xmi:id="_yOyxwMlAEeC3qc59rLjnlw" base_Class="StateInvariant"/>
- <l2:Metaclass xmi:id="_yOzY0MlAEeC3qc59rLjnlw" base_Class="StateMachine"/>
- <l2:Metaclass xmi:id="_yO3qQMlAEeC3qc59rLjnlw" base_Class="Stereotype"/>
- <l2:Metaclass xmi:id="_yO6GgMlAEeC3qc59rLjnlw" base_Class="StringExpression"/>
- <l2:Metaclass xmi:id="_yO8iwMlAEeC3qc59rLjnlw" base_Class="StructuralFeature"/>
- <l2:Metaclass xmi:id="_yO9J0MlAEeC3qc59rLjnlw" base_Class="StructuralFeatureAction"/>
- <l2:Metaclass xmi:id="_yO_mEMlAEeC3qc59rLjnlw" base_Class="StructuredActivityNode"/>
- <l2:Metaclass xmi:id="_yPCpYMlAEeC3qc59rLjnlw" base_Class="StructuredClassifier"/>
- <l2:Metaclass xmi:id="_yPFFoMlAEeC3qc59rLjnlw" base_Class="Substitution"/>
- <l2:Metaclass xmi:id="_yPFssMlAEeC3qc59rLjnlw" base_Class="TemplateBinding"/>
- <l2:Metaclass xmi:id="_yPG60MlAEeC3qc59rLjnlw" base_Class="TemplateParameter"/>
- <l2:Metaclass xmi:id="_yPIwAMlAEeC3qc59rLjnlw" base_Class="TemplateParameterSubstitution"/>
- <l2:Metaclass xmi:id="_yPJ-IMlAEeC3qc59rLjnlw" base_Class="TemplateSignature"/>
- <l2:Metaclass xmi:id="_yPLMQMlAEeC3qc59rLjnlw" base_Class="TemplateableElement"/>
- <l2:Metaclass xmi:id="_yPNBcMlAEeC3qc59rLjnlw" base_Class="TestIdentityAction"/>
- <l2:Metaclass xmi:id="_yPOPkMlAEeC3qc59rLjnlw" base_Class="TimeConstraint"/>
- <l2:Metaclass xmi:id="_yPPdsMlAEeC3qc59rLjnlw" base_Class="TimeEvent"/>
- <l2:Metaclass xmi:id="_yPQr0MlAEeC3qc59rLjnlw" base_Class="TimeExpression"/>
- <l2:Metaclass xmi:id="_yPRS4MlAEeC3qc59rLjnlw" base_Class="TimeInterval"/>
- <l2:Metaclass xmi:id="_yPR58MlAEeC3qc59rLjnlw" base_Class="TimeObservation"/>
- <l2:Metaclass xmi:id="_yPShAMlAEeC3qc59rLjnlw" base_Class="Transition"/>
- <l2:Metaclass xmi:id="_yPYnoMlAEeC3qc59rLjnlw" base_Class="Trigger"/>
- <l2:Metaclass xmi:id="_yPZ1wMlAEeC3qc59rLjnlw" base_Class="Type"/>
- <l2:Metaclass xmi:id="_yPbD4MlAEeC3qc59rLjnlw" base_Class="TypedElement"/>
- <l2:Metaclass xmi:id="_yPbq8MlAEeC3qc59rLjnlw" base_Class="UnmarshallAction"/>
- <l2:Metaclass xmi:id="_yPeHMMlAEeC3qc59rLjnlw" base_Class="Usage"/>
- <l2:Metaclass xmi:id="_yPeuQMlAEeC3qc59rLjnlw" base_Class="UseCase"/>
- <l2:Metaclass xmi:id="_yPhxkMlAEeC3qc59rLjnlw" base_Class="ValuePin"/>
- <l2:Metaclass xmi:id="_yPiYoMlAEeC3qc59rLjnlw" base_Class="ValueSpecification"/>
- <l2:Metaclass xmi:id="_yPmqEMlAEeC3qc59rLjnlw" base_Class="ValueSpecificationAction"/>
- <l2:Metaclass xmi:id="_yPn4MMlAEeC3qc59rLjnlw" base_Class="Variable"/>
- <l2:Metaclass xmi:id="_yPptYMlAEeC3qc59rLjnlw" base_Class="VariableAction"/>
- <l2:Metaclass xmi:id="_yPqUcMlAEeC3qc59rLjnlw" base_Class="Vertex"/>
- <l2:Metaclass xmi:id="_yPtXwMlAEeC3qc59rLjnlw" base_Class="WriteLinkAction"/>
- <l2:Metaclass xmi:id="_yPt-0MlAEeC3qc59rLjnlw" base_Class="WriteStructuralFeatureAction"/>
- <l2:Metaclass xmi:id="_yPvM8MlAEeC3qc59rLjnlw" base_Class="WriteVariableAction"/>
+ <Ecore:EPackage xmi:id="_LWVYQN7NEduglsXU_NKRsA" base_Package="_0" packageName="uml" nsPrefix="uml" nsURI="http://www.eclipse.org/uml2/4.0.0/UML"/>
+ <l3:Metamodel xmi:id="_6sqEIAwWEeGpT8Nozt30Tg" base_Model="_0"/>
+ <l2:Metaclass xmi:id="_6u1OYAwWEeGpT8Nozt30Tg" base_Class="Abstraction"/>
+ <l2:Metaclass xmi:id="_6u2cgAwWEeGpT8Nozt30Tg" base_Class="AcceptCallAction"/>
+ <l2:Metaclass xmi:id="_6u3DkAwWEeGpT8Nozt30Tg" base_Class="AcceptEventAction"/>
+ <l2:Metaclass xmi:id="_6u44wAwWEeGpT8Nozt30Tg" base_Class="Action"/>
+ <l2:Metaclass xmi:id="_6u7VAAwWEeGpT8Nozt30Tg" base_Class="ActionExecutionSpecification"/>
+ <l2:Metaclass xmi:id="_6u9KMAwWEeGpT8Nozt30Tg" base_Class="ActionInputPin"/>
+ <l2:Metaclass xmi:id="_6u-_YAwWEeGpT8Nozt30Tg" base_Class="Activity"/>
+ <l2:Metaclass xmi:id="_6vJXcAwWEeGpT8Nozt30Tg" base_Class="ActivityEdge"/>
+ <l2:Metaclass xmi:id="_6vTvgAwWEeGpT8Nozt30Tg" base_Class="ActivityFinalNode"/>
+ <l2:Metaclass xmi:id="_6vUWkAwWEeGpT8Nozt30Tg" base_Class="ActivityGroup"/>
+ <l2:Metaclass xmi:id="_6vWy0AwWEeGpT8Nozt30Tg" base_Class="ActivityNode"/>
+ <l2:Metaclass xmi:id="_6vZPEAwWEeGpT8Nozt30Tg" base_Class="ActivityParameterNode"/>
+ <l2:Metaclass xmi:id="_6vbEQAwWEeGpT8Nozt30Tg" base_Class="ActivityPartition"/>
+ <l2:Metaclass xmi:id="_6veHkAwWEeGpT8Nozt30Tg" base_Class="Actor"/>
+ <l2:Metaclass xmi:id="_6veuoAwWEeGpT8Nozt30Tg" base_Class="AddStructuralFeatureValueAction"/>
+ <l2:Metaclass xmi:id="_6vf8wAwWEeGpT8Nozt30Tg" base_Class="AddVariableValueAction"/>
+ <l2:Metaclass xmi:id="_6vhK4AwWEeGpT8Nozt30Tg" base_Class="AnyReceiveEvent"/>
+ <l2:Metaclass xmi:id="_6vhx8AwWEeGpT8Nozt30Tg" base_Class="Artifact"/>
+ <l2:Metaclass xmi:id="_6vjnIAwWEeGpT8Nozt30Tg" base_Class="Association"/>
+ <l2:Metaclass xmi:id="_6vnRgAwWEeGpT8Nozt30Tg" base_Class="AssociationClass"/>
+ <l2:Metaclass xmi:id="_6vn4kAwWEeGpT8Nozt30Tg" base_Class="Behavior"/>
+ <l2:Metaclass xmi:id="_6vri8AwWEeGpT8Nozt30Tg" base_Class="BehaviorExecutionSpecification"/>
+ <l2:Metaclass xmi:id="_6vsKAAwWEeGpT8Nozt30Tg" base_Class="BehavioralFeature"/>
+ <l2:Metaclass xmi:id="_6vvNUAwWEeGpT8Nozt30Tg" base_Class="BehavioredClassifier"/>
+ <l2:Metaclass xmi:id="_6vwbcAwWEeGpT8Nozt30Tg" base_Class="BroadcastSignalAction"/>
+ <l2:Metaclass xmi:id="_6vxCgAwWEeGpT8Nozt30Tg" base_Class="CallAction"/>
+ <l2:Metaclass xmi:id="_6v0F0AwWEeGpT8Nozt30Tg" base_Class="CallBehaviorAction"/>
+ <l2:Metaclass xmi:id="_6v1T8AwWEeGpT8Nozt30Tg" base_Class="CallEvent"/>
+ <l2:Metaclass xmi:id="_6v17AAwWEeGpT8Nozt30Tg" base_Class="CallOperationAction"/>
+ <l2:Metaclass xmi:id="_6wGZsAwWEeGpT8Nozt30Tg" base_Class="CentralBufferNode"/>
+ <l2:Metaclass xmi:id="_6wGZsQwWEeGpT8Nozt30Tg" base_Class="ChangeEvent"/>
+ <l2:Metaclass xmi:id="_6wHAwAwWEeGpT8Nozt30Tg" base_Class="Class"/>
+ <l2:Metaclass xmi:id="_6wMgUAwWEeGpT8Nozt30Tg" base_Class="Classifier"/>
+ <l2:Metaclass xmi:id="_6wXfcAwWEeGpT8Nozt30Tg" base_Class="ClassifierTemplateParameter"/>
+ <l2:Metaclass xmi:id="_6wYtkAwWEeGpT8Nozt30Tg" base_Class="Clause"/>
+ <l2:Metaclass xmi:id="_6wbJ0AwWEeGpT8Nozt30Tg" base_Class="ClearAssociationAction"/>
+ <l2:Metaclass xmi:id="_6wcX8AwWEeGpT8Nozt30Tg" base_Class="ClearStructuralFeatureAction"/>
+ <l2:Metaclass xmi:id="_6wc_AAwWEeGpT8Nozt30Tg" base_Class="ClearVariableAction"/>
+ <l2:Metaclass xmi:id="_6wdmEAwWEeGpT8Nozt30Tg" base_Class="Collaboration"/>
+ <l2:Metaclass xmi:id="_6weNIAwWEeGpT8Nozt30Tg" base_Class="CollaborationUse"/>
+ <l2:Metaclass xmi:id="_6wfbQAwWEeGpT8Nozt30Tg" base_Class="CombinedFragment"/>
+ <l2:Metaclass xmi:id="_6whQcAwWEeGpT8Nozt30Tg" base_Class="Comment"/>
+ <l2:Metaclass xmi:id="_6wiekAwWEeGpT8Nozt30Tg" base_Class="CommunicationPath"/>
+ <l2:Metaclass xmi:id="_6wjFoAwWEeGpT8Nozt30Tg" base_Class="Component"/>
+ <l2:Metaclass xmi:id="_6wnXEAwWEeGpT8Nozt30Tg" base_Class="ComponentRealization"/>
+ <l2:Metaclass xmi:id="_6wn-IAwWEeGpT8Nozt30Tg" base_Class="ConditionalNode"/>
+ <l2:Metaclass xmi:id="_6wqaYAwWEeGpT8Nozt30Tg" base_Class="ConnectableElement"/>
+ <l2:Metaclass xmi:id="_6wrogAwWEeGpT8Nozt30Tg" base_Class="ConnectableElementTemplateParameter"/>
+ <l2:Metaclass xmi:id="_6wsPkAwWEeGpT8Nozt30Tg" base_Class="ConnectionPointReference"/>
+ <l2:Metaclass xmi:id="_6wtdsAwWEeGpT8Nozt30Tg" base_Class="Connector"/>
+ <l2:Metaclass xmi:id="_6wwhAAwWEeGpT8Nozt30Tg" base_Class="ConnectorEnd"/>
+ <l2:Metaclass xmi:id="_6wyWMAwWEeGpT8Nozt30Tg" base_Class="ConsiderIgnoreFragment"/>
+ <l2:Metaclass xmi:id="_6wzkUAwWEeGpT8Nozt30Tg" base_Class="Constraint"/>
+ <l2:Metaclass xmi:id="_6w1ZgAwWEeGpT8Nozt30Tg" base_Class="Continuation"/>
+ <l2:Metaclass xmi:id="_6w2noAwWEeGpT8Nozt30Tg" base_Class="ControlFlow"/>
+ <l2:Metaclass xmi:id="_6w3OsAwWEeGpT8Nozt30Tg" base_Class="ControlNode"/>
+ <l2:Metaclass xmi:id="_6w31wAwWEeGpT8Nozt30Tg" base_Class="CreateLinkAction"/>
+ <l2:Metaclass xmi:id="_6w4c0AwWEeGpT8Nozt30Tg" base_Class="CreateLinkObjectAction"/>
+ <l2:Metaclass xmi:id="_6w5q8AwWEeGpT8Nozt30Tg" base_Class="CreateObjectAction"/>
+ <l2:Metaclass xmi:id="_6w65EAwWEeGpT8Nozt30Tg" base_Class="DataStoreNode"/>
+ <l2:Metaclass xmi:id="_6w7gIAwWEeGpT8Nozt30Tg" base_Class="DataType"/>
+ <l2:Metaclass xmi:id="_6w8uQAwWEeGpT8Nozt30Tg" base_Class="DecisionNode"/>
+ <l2:Metaclass xmi:id="_6w_KgAwWEeGpT8Nozt30Tg" base_Class="Dependency"/>
+ <l2:Metaclass xmi:id="_6w_xkAwWEeGpT8Nozt30Tg" base_Class="DeployedArtifact"/>
+ <l2:Metaclass xmi:id="_6xAYoAwWEeGpT8Nozt30Tg" base_Class="Deployment"/>
+ <l2:Metaclass xmi:id="_6xBmwAwWEeGpT8Nozt30Tg" base_Class="DeploymentSpecification"/>
+ <l2:Metaclass xmi:id="_6xC04AwWEeGpT8Nozt30Tg" base_Class="DeploymentTarget"/>
+ <l2:Metaclass xmi:id="_6xEqEAwWEeGpT8Nozt30Tg" base_Class="DestroyLinkAction"/>
+ <l2:Metaclass xmi:id="_6xFRIAwWEeGpT8Nozt30Tg" base_Class="DestroyObjectAction"/>
+ <l2:Metaclass xmi:id="_6xGfQAwWEeGpT8Nozt30Tg" base_Class="DestructionOccurrenceSpecification"/>
+ <l2:Metaclass xmi:id="_6xHGUAwWEeGpT8Nozt30Tg" base_Class="Device"/>
+ <l2:Metaclass xmi:id="_6xHGUQwWEeGpT8Nozt30Tg" base_Class="DirectedRelationship"/>
+ <l2:Metaclass xmi:id="_6xIUcAwWEeGpT8Nozt30Tg" base_Class="Duration"/>
+ <l2:Metaclass xmi:id="_6xI7gAwWEeGpT8Nozt30Tg" base_Class="DurationConstraint"/>
+ <l2:Metaclass xmi:id="_6xKJoAwWEeGpT8Nozt30Tg" base_Class="DurationInterval"/>
+ <l2:Metaclass xmi:id="_6xKwsAwWEeGpT8Nozt30Tg" base_Class="DurationObservation"/>
+ <l2:Metaclass xmi:id="_6xL-0AwWEeGpT8Nozt30Tg" base_Class="Element"/>
+ <l2:Metaclass xmi:id="_6xObEAwWEeGpT8Nozt30Tg" base_Class="ElementImport"/>
+ <l2:Metaclass xmi:id="_6xQQQAwWEeGpT8Nozt30Tg" base_Class="EncapsulatedClassifier"/>
+ <l2:Metaclass xmi:id="_6xSFcAwWEeGpT8Nozt30Tg" base_Class="Enumeration"/>
+ <l2:Metaclass xmi:id="_6xSsgAwWEeGpT8Nozt30Tg" base_Class="EnumerationLiteral"/>
+ <l2:Metaclass xmi:id="_6xUhsAwWEeGpT8Nozt30Tg" base_Class="Event"/>
+ <l2:Metaclass xmi:id="_6xUhsQwWEeGpT8Nozt30Tg" base_Class="ExceptionHandler"/>
+ <l2:Metaclass xmi:id="_6xW98AwWEeGpT8Nozt30Tg" base_Class="ExecutableNode"/>
+ <l2:Metaclass xmi:id="_6xXlAAwWEeGpT8Nozt30Tg" base_Class="ExecutionEnvironment"/>
+ <l2:Metaclass xmi:id="_6xXlAQwWEeGpT8Nozt30Tg" base_Class="ExecutionOccurrenceSpecification"/>
+ <l2:Metaclass xmi:id="_6xYMEAwWEeGpT8Nozt30Tg" base_Class="ExecutionSpecification"/>
+ <l2:Metaclass xmi:id="_6xYzIAwWEeGpT8Nozt30Tg" base_Class="ExpansionNode"/>
+ <l2:Metaclass xmi:id="_6xaBQAwWEeGpT8Nozt30Tg" base_Class="ExpansionRegion"/>
+ <l2:Metaclass xmi:id="_6xbPYAwWEeGpT8Nozt30Tg" base_Class="Expression"/>
+ <l2:Metaclass xmi:id="_6xcdgAwWEeGpT8Nozt30Tg" base_Class="Extend"/>
+ <l2:Metaclass xmi:id="_6xeSsAwWEeGpT8Nozt30Tg" base_Class="Extension"/>
+ <l2:Metaclass xmi:id="_6xgH4AwWEeGpT8Nozt30Tg" base_Class="ExtensionEnd"/>
+ <l2:Metaclass xmi:id="_6xh9EAwWEeGpT8Nozt30Tg" base_Class="ExtensionPoint"/>
+ <l2:Metaclass xmi:id="_6xjLMAwWEeGpT8Nozt30Tg" base_Class="Feature"/>
+ <l2:Metaclass xmi:id="_6xjyQAwWEeGpT8Nozt30Tg" base_Class="FinalNode"/>
+ <l2:Metaclass xmi:id="_6xkZUAwWEeGpT8Nozt30Tg" base_Class="FinalState"/>
+ <l2:Metaclass xmi:id="_6xmOgAwWEeGpT8Nozt30Tg" base_Class="FlowFinalNode"/>
+ <l2:Metaclass xmi:id="_6xm1kAwWEeGpT8Nozt30Tg" base_Class="ForkNode"/>
+ <l2:Metaclass xmi:id="_6xoDsAwWEeGpT8Nozt30Tg" base_Class="FunctionBehavior"/>
+ <l2:Metaclass xmi:id="_6xoqwAwWEeGpT8Nozt30Tg" base_Class="Gate"/>
+ <l2:Metaclass xmi:id="_6xpR0AwWEeGpT8Nozt30Tg" base_Class="GeneralOrdering"/>
+ <l2:Metaclass xmi:id="_6xqf8AwWEeGpT8Nozt30Tg" base_Class="Generalization"/>
+ <l2:Metaclass xmi:id="_6xsVIAwWEeGpT8Nozt30Tg" base_Class="GeneralizationSet"/>
+ <l2:Metaclass xmi:id="_6xuKUAwWEeGpT8Nozt30Tg" base_Class="Image"/>
+ <l2:Metaclass xmi:id="_6xvYcAwWEeGpT8Nozt30Tg" base_Class="Include"/>
+ <l2:Metaclass xmi:id="_6xv_gAwWEeGpT8Nozt30Tg" base_Class="InformationFlow"/>
+ <l2:Metaclass xmi:id="_6xzC0AwWEeGpT8Nozt30Tg" base_Class="InformationItem"/>
+ <l2:Metaclass xmi:id="_6x0Q8AwWEeGpT8Nozt30Tg" base_Class="InitialNode"/>
+ <l2:Metaclass xmi:id="_6x1fEAwWEeGpT8Nozt30Tg" base_Class="InputPin"/>
+ <l2:Metaclass xmi:id="_6x2GIAwWEeGpT8Nozt30Tg" base_Class="InstanceSpecification"/>
+ <l2:Metaclass xmi:id="_6x37UAwWEeGpT8Nozt30Tg" base_Class="InstanceValue"/>
+ <l2:Metaclass xmi:id="_6x4iYAwWEeGpT8Nozt30Tg" base_Class="Interaction"/>
+ <l2:Metaclass xmi:id="_6x6XkAwWEeGpT8Nozt30Tg" base_Class="InteractionConstraint"/>
+ <l2:Metaclass xmi:id="_6x8z0AwWEeGpT8Nozt30Tg" base_Class="InteractionFragment"/>
+ <l2:Metaclass xmi:id="_6x-B8AwWEeGpT8Nozt30Tg" base_Class="InteractionOperand"/>
+ <l2:Metaclass xmi:id="_6x_3IAwWEeGpT8Nozt30Tg" base_Class="InteractionUse"/>
+ <l2:Metaclass xmi:id="_6yCTYAwWEeGpT8Nozt30Tg" base_Class="Interface"/>
+ <l2:Metaclass xmi:id="_6yFWsAwWEeGpT8Nozt30Tg" base_Class="InterfaceRealization"/>
+ <l2:Metaclass xmi:id="_6yF9wAwWEeGpT8Nozt30Tg" base_Class="InterruptibleActivityRegion"/>
+ <l2:Metaclass xmi:id="_6yHL4AwWEeGpT8Nozt30Tg" base_Class="Interval"/>
+ <l2:Metaclass xmi:id="_6yHy8AwWEeGpT8Nozt30Tg" base_Class="IntervalConstraint"/>
+ <l2:Metaclass xmi:id="_6yIaAAwWEeGpT8Nozt30Tg" base_Class="InvocationAction"/>
+ <l2:Metaclass xmi:id="_6yJoIAwWEeGpT8Nozt30Tg" base_Class="JoinNode"/>
+ <l2:Metaclass xmi:id="_6yK2QAwWEeGpT8Nozt30Tg" base_Class="Lifeline"/>
+ <l2:Metaclass xmi:id="_6yMrcAwWEeGpT8Nozt30Tg" base_Class="LinkAction"/>
+ <l2:Metaclass xmi:id="_6yPHsAwWEeGpT8Nozt30Tg" base_Class="LinkEndCreationData"/>
+ <l2:Metaclass xmi:id="_6yQV0AwWEeGpT8Nozt30Tg" base_Class="LinkEndData"/>
+ <l2:Metaclass xmi:id="_6ySLAAwWEeGpT8Nozt30Tg" base_Class="LinkEndDestructionData"/>
+ <l2:Metaclass xmi:id="_6yUAMAwWEeGpT8Nozt30Tg" base_Class="LiteralBoolean"/>
+ <l2:Metaclass xmi:id="_6yVOUAwWEeGpT8Nozt30Tg" base_Class="LiteralInteger"/>
+ <l2:Metaclass xmi:id="_6yWccAwWEeGpT8Nozt30Tg" base_Class="LiteralNull"/>
+ <l2:Metaclass xmi:id="_6yXqkAwWEeGpT8Nozt30Tg" base_Class="LiteralReal"/>
+ <l2:Metaclass xmi:id="_6yY4sAwWEeGpT8Nozt30Tg" base_Class="LiteralSpecification"/>
+ <l2:Metaclass xmi:id="_6yZfwAwWEeGpT8Nozt30Tg" base_Class="LiteralString"/>
+ <l2:Metaclass xmi:id="_6yat4AwWEeGpT8Nozt30Tg" base_Class="LiteralUnlimitedNatural"/>
+ <l2:Metaclass xmi:id="_6yb8AAwWEeGpT8Nozt30Tg" base_Class="LoopNode"/>
+ <l2:Metaclass xmi:id="_6yfmYAwWEeGpT8Nozt30Tg" base_Class="Manifestation"/>
+ <l2:Metaclass xmi:id="_6ygNcAwWEeGpT8Nozt30Tg" base_Class="MergeNode"/>
+ <l2:Metaclass xmi:id="_6yg0gAwWEeGpT8Nozt30Tg" base_Class="Message"/>
+ <l2:Metaclass xmi:id="_6ylF8AwWEeGpT8Nozt30Tg" base_Class="MessageEnd"/>
+ <l2:Metaclass xmi:id="_6yltAAwWEeGpT8Nozt30Tg" base_Class="MessageEvent"/>
+ <l2:Metaclass xmi:id="_6ymUEAwWEeGpT8Nozt30Tg" base_Class="MessageOccurrenceSpecification"/>
+ <l2:Metaclass xmi:id="_6ym7IAwWEeGpT8Nozt30Tg" base_Class="Model"/>
+ <l2:Metaclass xmi:id="_6yniMAwWEeGpT8Nozt30Tg" base_Class="MultiplicityElement"/>
+ <l2:Metaclass xmi:id="_6yu28AwWEeGpT8Nozt30Tg" base_Class="NamedElement"/>
+ <l2:Metaclass xmi:id="_6y09kAwWEeGpT8Nozt30Tg" base_Class="Namespace"/>
+ <l2:Metaclass xmi:id="_6y7EMAwWEeGpT8Nozt30Tg" base_Class="Node"/>
+ <l2:Metaclass xmi:id="_6y8SUAwWEeGpT8Nozt30Tg" base_Class="ObjectFlow"/>
+ <l2:Metaclass xmi:id="_6y_VoAwWEeGpT8Nozt30Tg" base_Class="ObjectNode"/>
+ <l2:Metaclass xmi:id="_6zCY8AwWEeGpT8Nozt30Tg" base_Class="Observation"/>
+ <l2:Metaclass xmi:id="_6zDAAAwWEeGpT8Nozt30Tg" base_Class="OccurrenceSpecification"/>
+ <l2:Metaclass xmi:id="_6zEOIAwWEeGpT8Nozt30Tg" base_Class="OpaqueAction"/>
+ <l2:Metaclass xmi:id="_6zGDUAwWEeGpT8Nozt30Tg" base_Class="OpaqueBehavior"/>
+ <l2:Metaclass xmi:id="_6zHRcAwWEeGpT8Nozt30Tg" base_Class="OpaqueExpression"/>
+ <l2:Metaclass xmi:id="_6zMxAAwWEeGpT8Nozt30Tg" base_Class="Operation"/>
+ <l2:Metaclass xmi:id="_6zXJEAwWEeGpT8Nozt30Tg" base_Class="OperationTemplateParameter"/>
+ <l2:Metaclass xmi:id="_6zXwIAwWEeGpT8Nozt30Tg" base_Class="OutputPin"/>
+ <l2:Metaclass xmi:id="_6zYXMAwWEeGpT8Nozt30Tg" base_Class="Package"/>
+ <l2:Metaclass xmi:id="_6zgTAAwWEeGpT8Nozt30Tg" base_Class="PackageImport"/>
+ <l2:Metaclass xmi:id="_6ziIMAwWEeGpT8Nozt30Tg" base_Class="PackageMerge"/>
+ <l2:Metaclass xmi:id="_6zivQAwWEeGpT8Nozt30Tg" base_Class="PackageableElement"/>
+ <l2:Metaclass xmi:id="_6zjWUAwWEeGpT8Nozt30Tg" base_Class="Parameter"/>
+ <l2:Metaclass xmi:id="_6z0cEAwWEeGpT8Nozt30Tg" base_Class="ParameterSet"/>
+ <l2:Metaclass xmi:id="_6z2RQAwWEeGpT8Nozt30Tg" base_Class="ParameterableElement"/>
+ <l2:Metaclass xmi:id="_6z4GcAwWEeGpT8Nozt30Tg" base_Class="PartDecomposition"/>
+ <l2:Metaclass xmi:id="_6z5UkAwWEeGpT8Nozt30Tg" base_Class="Pin"/>
+ <l2:Metaclass xmi:id="_6z6isAwWEeGpT8Nozt30Tg" base_Class="Port"/>
+ <l2:Metaclass xmi:id="_6z-0IAwWEeGpT8Nozt30Tg" base_Class="PrimitiveType"/>
+ <l2:Metaclass xmi:id="_6z-0IQwWEeGpT8Nozt30Tg" base_Class="Profile"/>
+ <l2:Metaclass xmi:id="_60ApUAwWEeGpT8Nozt30Tg" base_Class="ProfileApplication"/>
+ <l2:Metaclass xmi:id="_60BQYAwWEeGpT8Nozt30Tg" base_Class="Property"/>
+ <l2:Metaclass xmi:id="_60PS0AwWEeGpT8Nozt30Tg" base_Class="ProtocolConformance"/>
+ <l2:Metaclass xmi:id="_60Qg8AwWEeGpT8Nozt30Tg" base_Class="ProtocolStateMachine"/>
+ <l2:Metaclass xmi:id="_60SWIAwWEeGpT8Nozt30Tg" base_Class="ProtocolTransition"/>
+ <l2:Metaclass xmi:id="_60UyYAwWEeGpT8Nozt30Tg" base_Class="Pseudostate"/>
+ <l2:Metaclass xmi:id="_60YcwAwWEeGpT8Nozt30Tg" base_Class="QualifierValue"/>
+ <l2:Metaclass xmi:id="_60Zq4AwWEeGpT8Nozt30Tg" base_Class="RaiseExceptionAction"/>
+ <l2:Metaclass xmi:id="_60aR8AwWEeGpT8Nozt30Tg" base_Class="ReadExtentAction"/>
+ <l2:Metaclass xmi:id="_60bgEAwWEeGpT8Nozt30Tg" base_Class="ReadIsClassifiedObjectAction"/>
+ <l2:Metaclass xmi:id="_60dVQAwWEeGpT8Nozt30Tg" base_Class="ReadLinkAction"/>
+ <l2:Metaclass xmi:id="_60fKcAwWEeGpT8Nozt30Tg" base_Class="ReadLinkObjectEndAction"/>
+ <l2:Metaclass xmi:id="_60hmsAwWEeGpT8Nozt30Tg" base_Class="ReadLinkObjectEndQualifierAction"/>
+ <l2:Metaclass xmi:id="_60lREAwWEeGpT8Nozt30Tg" base_Class="ReadSelfAction"/>
+ <l2:Metaclass xmi:id="_60nGQAwWEeGpT8Nozt30Tg" base_Class="ReadStructuralFeatureAction"/>
+ <l2:Metaclass xmi:id="_60ntUAwWEeGpT8Nozt30Tg" base_Class="ReadVariableAction"/>
+ <l2:Metaclass xmi:id="_60o7cAwWEeGpT8Nozt30Tg" base_Class="Realization"/>
+ <l2:Metaclass xmi:id="_60pigAwWEeGpT8Nozt30Tg" base_Class="Reception"/>
+ <l2:Metaclass xmi:id="_60r-wAwWEeGpT8Nozt30Tg" base_Class="ReclassifyObjectAction"/>
+ <l2:Metaclass xmi:id="_60ubAAwWEeGpT8Nozt30Tg" base_Class="RedefinableElement"/>
+ <l2:Metaclass xmi:id="_60xeUAwWEeGpT8Nozt30Tg" base_Class="RedefinableTemplateSignature"/>
+ <l2:Metaclass xmi:id="_60z6kAwWEeGpT8Nozt30Tg" base_Class="ReduceAction"/>
+ <l2:Metaclass xmi:id="_601vwAwWEeGpT8Nozt30Tg" base_Class="Region"/>
+ <l2:Metaclass xmi:id="_607PUAwWEeGpT8Nozt30Tg" base_Class="Relationship"/>
+ <l2:Metaclass xmi:id="_6072YAwWEeGpT8Nozt30Tg" base_Class="RemoveStructuralFeatureValueAction"/>
+ <l2:Metaclass xmi:id="_609EgAwWEeGpT8Nozt30Tg" base_Class="RemoveVariableValueAction"/>
+ <l2:Metaclass xmi:id="_609rkAwWEeGpT8Nozt30Tg" base_Class="ReplyAction"/>
+ <l2:Metaclass xmi:id="_60_gwAwWEeGpT8Nozt30Tg" base_Class="SendObjectAction"/>
+ <l2:Metaclass xmi:id="_61AH0AwWEeGpT8Nozt30Tg" base_Class="SendSignalAction"/>
+ <l2:Metaclass xmi:id="_61BV8AwWEeGpT8Nozt30Tg" base_Class="SequenceNode"/>
+ <l2:Metaclass xmi:id="_61B9AAwWEeGpT8Nozt30Tg" base_Class="Signal"/>
+ <l2:Metaclass xmi:id="_61CkEAwWEeGpT8Nozt30Tg" base_Class="SignalEvent"/>
+ <l2:Metaclass xmi:id="_61DLIAwWEeGpT8Nozt30Tg" base_Class="Slot"/>
+ <l2:Metaclass xmi:id="_61DyMAwWEeGpT8Nozt30Tg" base_Class="StartClassifierBehaviorAction"/>
+ <l2:Metaclass xmi:id="_61FAUAwWEeGpT8Nozt30Tg" base_Class="StartObjectBehaviorAction"/>
+ <l2:Metaclass xmi:id="_61G1gAwWEeGpT8Nozt30Tg" base_Class="State"/>
+ <l2:Metaclass xmi:id="_61P_cAwWEeGpT8Nozt30Tg" base_Class="StateInvariant"/>
+ <l2:Metaclass xmi:id="_61QmgAwWEeGpT8Nozt30Tg" base_Class="StateMachine"/>
+ <l2:Metaclass xmi:id="_61VfAAwWEeGpT8Nozt30Tg" base_Class="Stereotype"/>
+ <l2:Metaclass xmi:id="_61X7QAwWEeGpT8Nozt30Tg" base_Class="StringExpression"/>
+ <l2:Metaclass xmi:id="_61ZwcAwWEeGpT8Nozt30Tg" base_Class="StructuralFeature"/>
+ <l2:Metaclass xmi:id="_61a-kAwWEeGpT8Nozt30Tg" base_Class="StructuralFeatureAction"/>
+ <l2:Metaclass xmi:id="_61czwAwWEeGpT8Nozt30Tg" base_Class="StructuredActivityNode"/>
+ <l2:Metaclass xmi:id="_61f3EAwWEeGpT8Nozt30Tg" base_Class="StructuredClassifier"/>
+ <l2:Metaclass xmi:id="_61iTUAwWEeGpT8Nozt30Tg" base_Class="Substitution"/>
+ <l2:Metaclass xmi:id="_61i6YAwWEeGpT8Nozt30Tg" base_Class="TemplateBinding"/>
+ <l2:Metaclass xmi:id="_61kvkAwWEeGpT8Nozt30Tg" base_Class="TemplateParameter"/>
+ <l2:Metaclass xmi:id="_61l9sAwWEeGpT8Nozt30Tg" base_Class="TemplateParameterSubstitution"/>
+ <l2:Metaclass xmi:id="_61ny4AwWEeGpT8Nozt30Tg" base_Class="TemplateSignature"/>
+ <l2:Metaclass xmi:id="_61pBAAwWEeGpT8Nozt30Tg" base_Class="TemplateableElement"/>
+ <l2:Metaclass xmi:id="_61q2MAwWEeGpT8Nozt30Tg" base_Class="TestIdentityAction"/>
+ <l2:Metaclass xmi:id="_61srYAwWEeGpT8Nozt30Tg" base_Class="TimeConstraint"/>
+ <l2:Metaclass xmi:id="_61tScAwWEeGpT8Nozt30Tg" base_Class="TimeEvent"/>
+ <l2:Metaclass xmi:id="_61ugkAwWEeGpT8Nozt30Tg" base_Class="TimeExpression"/>
+ <l2:Metaclass xmi:id="_61vusAwWEeGpT8Nozt30Tg" base_Class="TimeInterval"/>
+ <l2:Metaclass xmi:id="_61wVwAwWEeGpT8Nozt30Tg" base_Class="TimeObservation"/>
+ <l2:Metaclass xmi:id="_61w80AwWEeGpT8Nozt30Tg" base_Class="Transition"/>
+ <l2:Metaclass xmi:id="_613qgAwWEeGpT8Nozt30Tg" base_Class="Trigger"/>
+ <l2:Metaclass xmi:id="_6144oAwWEeGpT8Nozt30Tg" base_Class="Type"/>
+ <l2:Metaclass xmi:id="_616GwAwWEeGpT8Nozt30Tg" base_Class="TypedElement"/>
+ <l2:Metaclass xmi:id="_616t0AwWEeGpT8Nozt30Tg" base_Class="UnmarshallAction"/>
+ <l2:Metaclass xmi:id="_619xIAwWEeGpT8Nozt30Tg" base_Class="Usage"/>
+ <l2:Metaclass xmi:id="_61-YMAwWEeGpT8Nozt30Tg" base_Class="UseCase"/>
+ <l2:Metaclass xmi:id="_62BbgAwWEeGpT8Nozt30Tg" base_Class="ValuePin"/>
+ <l2:Metaclass xmi:id="_62CpoAwWEeGpT8Nozt30Tg" base_Class="ValueSpecification"/>
+ <l2:Metaclass xmi:id="_62G7EAwWEeGpT8Nozt30Tg" base_Class="ValueSpecificationAction"/>
+ <l2:Metaclass xmi:id="_62IJMAwWEeGpT8Nozt30Tg" base_Class="Variable"/>
+ <l2:Metaclass xmi:id="_62J-YAwWEeGpT8Nozt30Tg" base_Class="VariableAction"/>
+ <l2:Metaclass xmi:id="_62KlcAwWEeGpT8Nozt30Tg" base_Class="Vertex"/>
+ <l2:Metaclass xmi:id="_62NowAwWEeGpT8Nozt30Tg" base_Class="WriteLinkAction"/>
+ <l2:Metaclass xmi:id="_62OP0AwWEeGpT8Nozt30Tg" base_Class="WriteStructuralFeatureAction"/>
+ <l2:Metaclass xmi:id="_62QsEAwWEeGpT8Nozt30Tg" base_Class="WriteVariableAction"/>
</xmi:XMI>
diff --git a/plugins/org.eclipse.uml2.uml.resources/profiles/Ecore.profile.uml b/plugins/org.eclipse.uml2.uml.resources/profiles/Ecore.profile.uml
index a9f0034c..0e501672 100644
--- a/plugins/org.eclipse.uml2.uml.resources/profiles/Ecore.profile.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/profiles/Ecore.profile.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 #_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 #_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Profile xmi:id="_0" name="Ecore" metamodelReference="_packageImport.0">
<eAnnotations xmi:id="_v9DA0K87Edi5QpYeY_yIpg" source="http://www.eclipse.org/uml2/2.0.0/UML">
<contents xmi:type="ecore:EPackage" xmi:id="_z1OFcHjqEdy8S4Cr8Rc_NA" name="Ecore" nsURI="http://www.eclipse.org/uml2/schemas/Ecore/5" nsPrefix="Ecore">
diff --git a/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL2.profile.uml b/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL2.profile.uml
index e6e72803..85929316 100644
--- a/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL2.profile.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL2.profile.uml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
- <uml:Profile xmi:id="_0" name="StandardProfileL2" URI="http://www.omg.org/spec/UML/20100901/StandardProfileL2" metamodelReference="_packageImport.0">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_0" name="StandardProfileL2" URI="http://www.omg.org/spec/UML/20110701/StandardProfileL2" metamodelReference="_packageImport.0">
<packageImport xmi:id="_packageImport.0">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
</packageImport>
diff --git a/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL3.profile.uml b/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL3.profile.uml
index eb7ac558..8c869463 100644
--- a/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL3.profile.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/profiles/StandardL3.profile.uml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
- <uml:Profile xmi:id="_0" name="StandardProfileL3" URI="http://www.omg.org/spec/UML/20100901/StandardProfileL3" metamodelReference="_packageImport.0">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Profile xmi:id="_0" name="StandardProfileL3" URI="http://www.omg.org/spec/UML/20110701/StandardProfileL3" metamodelReference="_packageImport.0">
<packageImport xmi:id="_packageImport.0">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
</packageImport>
@@ -20,16 +20,25 @@
</ownedEnd>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="BuildComponent" name="BuildComponent">
+ <ownedComment xmi:id="BuildComponent-_ownedComment.0" annotatedElement="BuildComponent">
+ <body>A collection of elements defined for the purpose of system level decelopment activities, such as compilation and versioning.</body>
+ </ownedComment>
<ownedAttribute xmi:id="BuildComponent-base_Component" name="base_Component" visibility="public" association="Component_BuildComponent">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="Metamodel" name="Metamodel">
+ <ownedComment xmi:id="Metamodel-_ownedComment.0" annotatedElement="Metamodel">
+ <body>A model that specifies the modeling concepts of some modeling language (e.g., a MOF model). See >.</body>
+ </ownedComment>
<ownedAttribute xmi:id="Metamodel-base_Model" name="base_Model" visibility="public" association="Model_Metamodel">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="SystemModel" name="SystemModel">
+ <ownedComment xmi:id="SystemModel-_ownedComment.0" annotatedElement="SystemModel">
+ <body>A SystemModel is a stereotyped model that contains a collection of models of the same system. A systemModel also contains all relationships and constraints between model elements contained in different models.</body>
+ </ownedComment>
<ownedAttribute xmi:id="SystemModel-base_Model" name="base_Model" visibility="public" association="Model_SystemModel">
<type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Model"/>
</ownedAttribute>
diff --git a/plugins/org.eclipse.uml2.uml.resources/profiles/UML2.profile.uml b/plugins/org.eclipse.uml2.uml.resources/profiles/UML2.profile.uml
index 670feac4..ce9d6aac 100644
--- a/plugins/org.eclipse.uml2.uml.resources/profiles/UML2.profile.uml
+++ b/plugins/org.eclipse.uml2.uml.resources/profiles/UML2.profile.uml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20100901" xmlns:xmi="http://www.omg.org/spec/XMI/20100901" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+<xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" 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/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Profile xmi:id="_0" name="UML2" metamodelReference="_packageImport.0">
<eAnnotations xmi:id="__n5r8NSTEdqN9tnr0j3PAQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<contents xmi:type="ecore:EPackage" xmi:id="_On7PcOmLEeC7Uf0JLQQJUg" name="UML2" nsURI="http://www.eclipse.org/uml2/schemas/UML2/2" nsPrefix="UML2">

Back to the top