<?xml version="1.0" encoding="utf-8"?>
<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:uml="http://www.omg.org/spec/UML/20090901" xmi:version="2.1">
  <uml:Package xmi:id="_0" name="fUML">
    <packagedElement xmi:type="uml:Package" xmi:id="Syntax" name="Syntax">
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-CommonBehaviors" name="CommonBehaviors">
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-CommonBehaviors-BasicBehaviors"
          name="BasicBehaviors">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-_packageImport.0"
            importedPackage="Syntax-Classes-Kernel"
            importingNamespace="Syntax-CommonBehaviors-BasicBehaviors"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior" name="OpaqueBehavior">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_empty_body_and_language"
              name="fUML_empty_body_and_language"
              constrainedElement="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior"
              context="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_empty_body_and_language-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_empty_body_and_language">
                <body>body and language must be empty</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_empty_body_and_language-_specification">
                <language>OCL</language>
                <body>self.language-&gt;isEmpty() and self.body-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_inactive"
              name="fUML_inactive"
              constrainedElement="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior"
              context="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_inactive-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_inactive">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;An opaque behavior cannot be
                  active.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-fUML_inactive-_specification">
                <language>OCL</language>
                <body>not self.isActive</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-_generalization.0"
              general="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              specific="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-body" name="body"
              visibility="public" isOrdered="true" isUnique="false">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-body-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-body-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-language" name="language"
              visibility="public" isOrdered="true">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-language-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior-language-_lowerValue"/>
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind"
            name="CallConcurrencyKind">
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind-sequential"
              name="sequential"
              enumeration="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-FunctionBehavior" name="FunctionBehavior">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-FunctionBehavior-_generalization.0"
              general="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior"
              specific="Syntax-CommonBehaviors-BasicBehaviors-FunctionBehavior"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"
            name="BehavioredClassifier" isAbstract="true">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-fUML_allowed_owned_behaviors"
              name="fUML_allowed_owned_behaviors"
              constrainedElement="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"
              context="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-fUML_allowed_owned_behaviors-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-fUML_allowed_owned_behaviors">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;An owned behavior must be either the classifier behavior of or
                  the method for an operation of its behaviored
                  classifier.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-fUML_allowed_owned_behaviors-_specification">
                <language>OCL</language>
                <body>self.ownedBehavior-&gt;forAll(b:Behavior|b = self.classifierBehavior xor
                  self.allFeatures()-&gt;includes(b.specification))</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-_generalization.0"
              general="Syntax-Classes-Kernel-Classifier"
              specific="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior"
              name="ownedBehavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior">
                <body>References behavior specifications owned by a classifier.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior"
              name="classifierBehavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              subsettedProperty="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior">
                <body>A behavior specification that specifies the behavior of the classifier
                itself.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-addOwnedBehavior"
              name="addOwnedBehavior"
              class="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-addOwnedBehavior-_ownedComment.0">
                <body>super.addOwnedMember(ownedBehavior);&#xD; &#xD;
                  this.ownedBehavior.addValue(ownedBehavior);&#xD;
                  ownedBehavior._setContext(this);&#xD; &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-addOwnedBehavior-ownedBehavior"
                name="ownedBehavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-setClassifierBehavior"
              name="setClassifierBehavior"
              class="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-setClassifierBehavior-_ownedComment.0">
                <body>// Note: The classifier behavior must also be added as an owned behavior using
                  addOwnedBehavior.&#xD; &#xD; this.classifierBehavior =
                  classifierBehavior;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-setClassifierBehavior-classifierBehavior"
                name="classifierBehavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior" name="Behavior"
            isAbstract="true">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-fUML_reentrant_behavior"
              name="fUML_reentrant_behavior"
              constrainedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              context="Syntax-CommonBehaviors-BasicBehaviors-Behavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-fUML_reentrant_behavior-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior-fUML_reentrant_behavior">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;In this specification, an fUML instance model must have
                  Behavior.isReentrant &lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-fUML_reentrant_behavior-_specification">
                <language>OCL</language>
                <body>self.isReentrant</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-_generalization.0"
              general="Syntax-Classes-Kernel-Class"
              specific="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-isReentrant" name="isReentrant"
              visibility="public">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-isReentrant-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior-isReentrant">
                <body>Tells whether the behavior can be invoked while it is still executing from a
                  previous invocation.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-isReentrant-_defaultValue"
                value="true">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification"
              name="specification" type="Syntax-Classes-Kernel-BehavioralFeature"
              association="Syntax-Classes-Kernel-A_method_specification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification">
                <body>Designates a behavioral feature that the behavior implements. The behavioral
                  feature must be owned by the classifier that owns the behavior or be inherited by
                  it. The parameters of the behavioral feature and the implementing behavior must
                  match. If a behavior does not have a specification, it is directly associated with
                  a classifier (i.e., it is the behavior of the classifier as a whole).</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter"
              name="ownedParameter" type="Syntax-Classes-Kernel-Parameter" isOrdered="true"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter">
                <body>References a list of parameters to the behavior which describes the order and
                  type of arguments that can be given when the behavior is invoked and of the values
                  which will be returned when the behavior completes its execution. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context" name="context"
              type="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier" isDerived="true"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context">
                <body>The classifier that is the context for the execution of the behavior. If the
                  behavior is owned by a BehavioredClassifier, that classifier is the context.
                  Otherwise, the context is the first BehavioredClassifier reached by following the
                  chain of owner relationships. For example, following this algorithm, the context
                  of an entry action in a state machine is the classifier that owns the state
                  machine. The features of the context classifier as well as the elements visible to
                  the context classifier are visible to the behavior.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-Behavior" name="Behavior"
              class="Syntax-CommonBehaviors-BasicBehaviors-Behavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-Behavior-_ownedComment.0">
                <body>this.isReentrant = true;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-addOwnedParameter"
              name="addOwnedParameter" class="Syntax-CommonBehaviors-BasicBehaviors-Behavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-addOwnedParameter-_ownedComment.0">
                <body>super.addOwnedMember(ownedParameter);&#xD;
                  this.ownedParameter.addValue(ownedParameter);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-addOwnedParameter-ownedParameter"
                name="ownedParameter" type="Syntax-Classes-Kernel-Parameter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-_setContext" name="_setContext"
              class="Syntax-CommonBehaviors-BasicBehaviors-Behavior">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-_setContext-_ownedComment.0">
                <body>//Note: This is a helper operation intended to be called by certain operations
                  outside the Behavior class in order to allow the setting of the context to be
                  overriden in subclasses.&#xD; //It should _not_ be called otherwise in order
                  to set the context directly, rather than via these other operations.&#xD;
                  &#xD; // Debug.println("[_setContext] behavior = " + this.name + ", context =
                  " + context.name);&#xD; &#xD; this.context = context;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-Behavior-_setContext-context"
                name="context" type="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior"
            name="A_context_behavior" visibility="private"
            memberEnd="Syntax-CommonBehaviors-BasicBehaviors-Behavior-context Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior-behavior">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior-behavior"
              name="behavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              owningAssociation="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior-behavior-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_context_behavior-behavior-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter"
            name="A_behavior_ownedParameter" visibility="private"
            memberEnd="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter-behavior Syntax-CommonBehaviors-BasicBehaviors-Behavior-ownedParameter">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter-behavior"
              name="behavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              owningAssociation="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter-behavior-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavior_ownedParameter-behavior-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior"
            name="A_behavioredClassifier_ownedBehavior" visibility="private"
            memberEnd="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior-behavioredClassifier Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-ownedBehavior">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior-behavioredClassifier"
              name="behavioredClassifier"
              type="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"
              owningAssociation="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior-behavioredClassifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_behavioredClassifier_ownedBehavior-behavioredClassifier-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier"
            name="A_classifierBehavior_behavioredClassifier" visibility="private"
            memberEnd="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier-classifierBehavior Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier-behavioredClassifier">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier-behavioredClassifier"
              name="behavioredClassifier"
              type="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"
              owningAssociation="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier"
              association="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier-behavioredClassifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-BasicBehaviors-A_classifierBehavior_behavioredClassifier-behavioredClassifier-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-CommonBehaviors-Communications"
          name="Communications">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-CommonBehaviors-Communications-_packageImport.0"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Syntax-CommonBehaviors-Communications"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-Communications-Trigger" name="Trigger">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-Trigger-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-CommonBehaviors-Communications-Trigger"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-Trigger-event" name="event"
              type="Syntax-CommonBehaviors-Communications-Event"
              association="Syntax-CommonBehaviors-Communications-A_event_trigger">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Trigger-event-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-Trigger-event">
                <body>The event that causes the trigger.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-Trigger-event-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-Trigger-event-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-Communications-Trigger-setEvent" name="setEvent"
              class="Syntax-CommonBehaviors-Communications-Trigger">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Trigger-setEvent-_ownedComment.0">
                <body>this.event = event;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-Communications-Trigger-setEvent-event" name="event"
                type="Syntax-CommonBehaviors-Communications-Event"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-Communications-Signal" name="Signal">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-Signal-_generalization.0"
              general="Syntax-Classes-Kernel-Classifier"
              specific="Syntax-CommonBehaviors-Communications-Signal"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute"
              name="ownedAttribute" type="Syntax-Classes-Kernel-Property" isOrdered="true"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Classifier-attribute Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute">
                <body>The attributes owned by the signal.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-Communications-Signal-addOwnedAttribute"
              name="addOwnedAttribute" class="Syntax-CommonBehaviors-Communications-Signal">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Signal-addOwnedAttribute-_ownedComment.0">
                <body>super.addAttribute(ownedAttribute);&#xD;
                  super.addOwnedMember(ownedAttribute);&#xD; &#xD;
                  this.ownedAttribute.addValue(ownedAttribute);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-Communications-Signal-addOwnedAttribute-ownedAttribute"
                name="ownedAttribute" type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent" name="SignalEvent">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-_generalization.0"
              general="Syntax-CommonBehaviors-Communications-MessageEvent"
              specific="Syntax-CommonBehaviors-Communications-SignalEvent"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-signal" name="signal"
              type="Syntax-CommonBehaviors-Communications-Signal"
              association="Syntax-CommonBehaviors-Communications-A_signal_signalEvent">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-signal-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-SignalEvent-signal">
                <body>The specific signal that is associated with this event.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-setSignal" name="setSignal"
              class="Syntax-CommonBehaviors-Communications-SignalEvent">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-setSignal-_ownedComment.0">
                <body>this.signal = signal;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-Communications-SignalEvent-setSignal-signal"
                name="signal" type="Syntax-CommonBehaviors-Communications-Signal"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-Communications-Reception" name="Reception">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-Communications-Reception-no_method" name="no_method"
              constrainedElement="Syntax-CommonBehaviors-Communications-Reception"
              context="Syntax-CommonBehaviors-Communications-Reception">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-no_method-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-Reception-no_method">
                <body>A reception must not have an associated method.&amp;nbsp;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-no_method-_specification">
                <language>OCL</language>
                <body>self.method-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-CommonBehaviors-Communications-Reception-not_abstract"
              name="not_abstract"
              constrainedElement="Syntax-CommonBehaviors-Communications-Reception"
              context="Syntax-CommonBehaviors-Communications-Reception">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-not_abstract-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-Reception-not_abstract Syntax-CommonBehaviors-Communications-Reception">
                <body>A reception may not be abstract.</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-not_abstract-_specification">
                <language>OCL</language>
                <body>not self.isAbstract</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-Reception-_generalization.0"
              general="Syntax-Classes-Kernel-BehavioralFeature"
              specific="Syntax-CommonBehaviors-Communications-Reception"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-Reception-signal" name="signal"
              type="Syntax-CommonBehaviors-Communications-Signal"
              association="Syntax-CommonBehaviors-Communications-A_reception_signal">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-signal-_ownedComment.0"
                annotatedElement="Syntax-CommonBehaviors-Communications-Reception-signal">
                <body>The signal that this reception handles.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-signal-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-signal-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-CommonBehaviors-Communications-Reception-setSignal" name="setSignal"
              class="Syntax-CommonBehaviors-Communications-Reception">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-setSignal-_ownedComment.0">
                <body>this.signal = signal;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-CommonBehaviors-Communications-Reception-setSignal-signal"
                name="signal" type="Syntax-CommonBehaviors-Communications-Signal"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-CommonBehaviors-Communications-MessageEvent" name="MessageEvent"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-MessageEvent-_generalization.0"
              general="Syntax-CommonBehaviors-Communications-Event"
              specific="Syntax-CommonBehaviors-Communications-MessageEvent"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-CommonBehaviors-Communications-Event"
            name="Event" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-CommonBehaviors-Communications-Event-_generalization.0"
              general="Syntax-Classes-Kernel-PackageableElement"
              specific="Syntax-CommonBehaviors-Communications-Event"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-Communications-A_reception_signal"
            name="A_reception_signal" visibility="private"
            memberEnd="Syntax-CommonBehaviors-Communications-A_reception_signal-reception Syntax-CommonBehaviors-Communications-Reception-signal">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-A_reception_signal-reception"
              name="reception" type="Syntax-CommonBehaviors-Communications-Reception"
              owningAssociation="Syntax-CommonBehaviors-Communications-A_reception_signal"
              association="Syntax-CommonBehaviors-Communications-A_reception_signal">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-A_reception_signal-reception-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-A_reception_signal-reception-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-Communications-A_signal_signalEvent"
            name="A_signal_signalEvent" visibility="private"
            memberEnd="Syntax-CommonBehaviors-Communications-SignalEvent-signal Syntax-CommonBehaviors-Communications-A_signal_signalEvent-signalEvent">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-A_signal_signalEvent-signalEvent"
              name="signalEvent" type="Syntax-CommonBehaviors-Communications-SignalEvent"
              owningAssociation="Syntax-CommonBehaviors-Communications-A_signal_signalEvent"
              association="Syntax-CommonBehaviors-Communications-A_signal_signalEvent">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-A_signal_signalEvent-signalEvent-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-A_signal_signalEvent-signalEvent-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal"
            name="A_ownedAttribute_owningSignal" visibility="private"
            memberEnd="Syntax-CommonBehaviors-Communications-Signal-ownedAttribute Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal-owningSignal">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal-owningSignal"
              name="owningSignal" type="Syntax-CommonBehaviors-Communications-Signal"
              owningAssociation="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace Syntax-Classes-Kernel-Feature-featuringClassifier Syntax-Classes-Kernel-A_attribute_classifier-classifier"
              association="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal-owningSignal-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-CommonBehaviors-Communications-A_ownedAttribute_owningSignal-owningSignal-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-CommonBehaviors-Communications-A_event_trigger" name="A_event_trigger"
            visibility="private"
            memberEnd="Syntax-CommonBehaviors-Communications-Trigger-event Syntax-CommonBehaviors-Communications-A_event_trigger-trigger">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-CommonBehaviors-Communications-A_event_trigger-trigger" name="trigger"
              type="Syntax-CommonBehaviors-Communications-Trigger"
              owningAssociation="Syntax-CommonBehaviors-Communications-A_event_trigger"
              association="Syntax-CommonBehaviors-Communications-A_event_trigger"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Classes" name="Classes">
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Classes-Kernel" name="Kernel">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Classes-Kernel-_packageImport.0"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Syntax-Classes-Kernel"> </packageImport>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-ValueSpecification"
            name="ValueSpecification" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-ValueSpecification-_generalization.0"
              general="Syntax-Classes-Kernel-TypedElement"
              specific="Syntax-Classes-Kernel-ValueSpecification"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-StructuralFeature"
            name="StructuralFeature" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-_generalization.0"
              general="Syntax-Classes-Kernel-Feature"
              specific="Syntax-Classes-Kernel-StructuralFeature"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-_generalization.1"
              general="Syntax-Classes-Kernel-TypedElement"
              specific="Syntax-Classes-Kernel-StructuralFeature"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-_generalization.2"
              general="Syntax-Classes-Kernel-MultiplicityElement"
              specific="Syntax-Classes-Kernel-StructuralFeature"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-isReadOnly" name="isReadOnly">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-isReadOnly-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-StructuralFeature-isReadOnly">
                <body>States whether the feature's value may be modified by a client.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-isReadOnly-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsReadOnly" name="setIsReadOnly"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsReadOnly-_ownedComment.0">
                <body>this.isReadOnly = isReadOnly;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsReadOnly-isReadOnly"
                name="isReadOnly">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsOrdered" name="setIsOrdered"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsOrdered-_ownedComment.0">
                <body>this.multiplicityElement.setIsOrdered(isOrdered);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsOrdered-isOrdered"
                name="isOrdered">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsUnique" name="setIsUnique"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsUnique-_ownedComment.0">
                <body>this.multiplicityElement.setIsUnique(isUnique);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setIsUnique-isUnique"
                name="isUnique">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpperValue" name="setUpperValue"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpperValue-_ownedComment.0">
                <body>this.multiplicityElement.setUpperValue(upperValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpperValue-upperValue"
                name="upperValue" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLowerValue" name="setLowerValue"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLowerValue-_ownedComment.0">
                <body>this.multiplicityElement.setLowerValue(lowerValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLowerValue-lowerValue"
                name="lowerValue" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpper" name="setUpper"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpper-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setUpperValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setUpper(upper);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setUpper-upper" name="upper">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLower" name="setLower"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLower-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setLowerValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setLower(lower);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setLower-lower" name="lower">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-StructuralFeature-setType" name="setType"
              class="Syntax-Classes-Kernel-StructuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setType-_ownedComment.0">
                <body>this.typedElement.setType(type);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-StructuralFeature-setType-type" name="type"
                type="Syntax-Classes-Kernel-Type"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-RedefinableElement"
            name="RedefinableElement" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-Classes-Kernel-RedefinableElement"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-isLeaf" name="isLeaf">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-isLeaf-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-RedefinableElement-isLeaf">
                <body>Indicates whether it is possible to further specialize a RedefinableElement.
                  If the value is true, then it is not possible to further specialize the
                  RedefinableElement.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-isLeaf-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinedElement"
              name="redefinedElement" type="Syntax-Classes-Kernel-RedefinableElement"
              isReadOnly="true" isDerived="true" isDerivedUnion="true"
              association="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinedElement-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-RedefinableElement-redefinedElement">
                <body>The redefinable element that is being redefined by this element.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinedElement-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinedElement-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext"
              name="redefinitionContext" type="Syntax-Classes-Kernel-Classifier" isReadOnly="true"
              isDerived="true" isDerivedUnion="true"
              association="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext">
                <body>References the contexts that this element may be redefined from.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-setIsLeaf" name="setIsLeaf"
              class="Syntax-Classes-Kernel-RedefinableElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-setIsLeaf-_ownedComment.0">
                <body>this.isLeaf = isLeaf;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-setIsLeaf-isLeaf" name="isLeaf">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinedElement"
              name="addRedefinedElement" visibility="protected"
              class="Syntax-Classes-Kernel-RedefinableElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinedElement-_ownedComment.0">
                <body>this.redefinedElement.addValue(redefinedElement);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinedElement-redefinedElement"
                name="redefinedElement" type="Syntax-Classes-Kernel-RedefinableElement"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinitionContext"
              name="addRedefinitionContext" visibility="protected"
              class="Syntax-Classes-Kernel-RedefinableElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinitionContext-_ownedComment.0">
                <body>this.redefinitionContext.addValue(redefinitionContext);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-RedefinableElement-addRedefinitionContext-redefinitionContext"
                name="redefinitionContext" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-BehavioralFeature"
            name="BehavioralFeature" isAbstract="true">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-sequentiality" name="sequentiality"
              constrainedElement="Syntax-Classes-Kernel-BehavioralFeature"
              context="Syntax-Classes-Kernel-BehavioralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-sequentiality-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-BehavioralFeature-sequentiality">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16674" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;concurrency must be
                  sequential&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-sequentiality-_specification">
                <language>OCL</language>
                <body>self.concurrency = CallConcurrencyKind::sequential</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-_generalization.0"
              general="Syntax-Classes-Kernel-Feature"
              specific="Syntax-Classes-Kernel-BehavioralFeature"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter" name="ownedParameter"
              type="Syntax-Classes-Kernel-Parameter" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter">
                <body>Specifies the ordered set of formal parameters of this
                BehavioralFeature.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter">
                <body>Specifies the ordered set of formal parameters owned by this
                  BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr
                  'return' to specify input, output, or return parameters.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-isAbstract" name="isAbstract">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-isAbstract-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-BehavioralFeature-isAbstract">
                <body>If true, then the behavioral feature does not have an implementation, and one
                  must be supplied by a more specific element. If false, the behavioral feature must
                  have an implementation in the classifier or one must be inherited from a more
                  general element.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-isAbstract-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-method" name="method"
              type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              association="Syntax-Classes-Kernel-A_method_specification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-method-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-BehavioralFeature-method">
                <body>A behavioral description that implements the behavioral feature. There may be
                  at most one behavior for a particular pairing of a classifier (as owner of the
                  behavior) and a behavioral feature (as specification of the behavior).</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-method-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-method-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-concurrency" name="concurrency"
              visibility="public" type="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-concurrency-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-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>
              </ownedComment>
              <defaultValue xmi:type="uml:InstanceValue"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-concurrency-sequential"
                name="sequential" type="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind"
                instance="Syntax-CommonBehaviors-BasicBehaviors-CallConcurrencyKind-sequential"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-setIsAbstract" name="setIsAbstract"
              class="Syntax-Classes-Kernel-BehavioralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-setIsAbstract-_ownedComment.0">
                <body>this.isAbstract = isAbstract;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-setIsAbstract-isAbstract"
                name="isAbstract">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addOwnedParameter"
              name="addOwnedParameter" class="Syntax-Classes-Kernel-BehavioralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addOwnedParameter-_ownedComment.0">
                <body>// this.addOwnedMember(ownedParameter); [Note: BehavioralFeature is not a
                  Namespace in fUML, to avoid multiple inheritance.]&#xD; &#xD;
                  this.ownedParameter.addValue(ownedParameter);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addOwnedParameter-ownedParameter"
                name="ownedParameter" type="Syntax-Classes-Kernel-Parameter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addMethod" name="addMethod"
              class="Syntax-Classes-Kernel-BehavioralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addMethod-_ownedComment.0">
                <body>method.specification = this;&#xD; this.method.addValue(method);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-BehavioralFeature-addMethod-method" name="method"
                type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-InstanceSpecification"
            name="InstanceSpecification">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-possible_classifiers"
              name="possible_classifiers"
              constrainedElement="Syntax-Classes-Kernel-InstanceSpecification"
              context="Syntax-Classes-Kernel-InstanceSpecification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-possible_classifiers-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-InstanceSpecification-possible_classifiers">
                <body>Either all the classifiers are classes, or there is one classifier that is a
                  data type</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-possible_classifiers-_specification">
                <language>OCL</language>
                <body>self.classifier-&gt;forAll(oclIsKindOf(Class)) or&#xD;
                  self.classifier-&gt;size() = 1 and
                  self.classifier-&gt;forAll(oclIsKindOf(DataType))&#xD; </body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-Classes-Kernel-InstanceSpecification"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-classifier" name="classifier"
              type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Classes-Kernel-A_classifier_instanceSpecification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-classifier-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-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>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-classifier-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-classifier-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-slot" name="slot"
              type="Syntax-Classes-Kernel-Slot" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_slot_owningInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-slot-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-InstanceSpecification-slot">
                <body>A slot giving the value or values of a structural feature of the instance. An
                  instance specification can have one slot per structural feature of its
                  classifiers, including inherited features. It is not necessary to model a slot for
                  each structural feature, in which case the instance specification is a partial
                  description.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-slot-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-slot-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addClassifier"
              name="addClassifier" class="Syntax-Classes-Kernel-InstanceSpecification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addClassifier-_ownedComment.0">
                <body>this.classifier.addValue(classifier);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addClassifier-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addSlot" name="addSlot"
              class="Syntax-Classes-Kernel-InstanceSpecification">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addSlot-_ownedComment.0">
                <body>this.addOwnedElement(slot);&#xD; this.slot.addValue(slot);&#xD;
                  slot.owningInstance = this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-InstanceSpecification-addSlot-slot" name="slot"
                type="Syntax-Classes-Kernel-Slot"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-InstanceValue"
            name="InstanceValue">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-InstanceValue-_generalization.0"
              general="Syntax-Classes-Kernel-ValueSpecification"
              specific="Syntax-Classes-Kernel-InstanceValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-InstanceValue-instance" name="instance"
              type="Syntax-Classes-Kernel-InstanceSpecification"
              association="Syntax-Classes-Kernel-A_instance_instanceValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceValue-instance-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-InstanceValue-instance">
                <body>The instance that is the specified value.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-InstanceValue-instance-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-InstanceValue-instance-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-InstanceValue-setInstance" name="setInstance"
              class="Syntax-Classes-Kernel-InstanceValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-InstanceValue-setInstance-_ownedComment.0">
                <body>this.instance = instance;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-InstanceValue-setInstance-instance" name="instance"
                type="Syntax-Classes-Kernel-InstanceSpecification"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-LiteralBoolean"
            name="LiteralBoolean">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralBoolean-_generalization.0"
              general="Syntax-Classes-Kernel-LiteralSpecification"
              specific="Syntax-Classes-Kernel-LiteralBoolean"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-LiteralBoolean-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralBoolean-value-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-LiteralBoolean-value">
                <body>The specified Boolean value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-LiteralBoolean-value-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-LiteralBoolean-setValue" name="setValue"
              class="Syntax-Classes-Kernel-LiteralBoolean">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralBoolean-setValue-_ownedComment.0">
                <body>this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-LiteralBoolean-setValue-value" name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-LiteralInteger"
            name="LiteralInteger">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralInteger-_generalization.0"
              general="Syntax-Classes-Kernel-LiteralSpecification"
              specific="Syntax-Classes-Kernel-LiteralInteger"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-LiteralInteger-value" name="value" visibility="public">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralInteger-value-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-LiteralInteger-value">
                <body>The specified Integer value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              <defaultValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-LiteralInteger-value-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-LiteralInteger-setValue" name="setValue"
              class="Syntax-Classes-Kernel-LiteralInteger">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralInteger-setValue-_ownedComment.0">
                <body>this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-LiteralInteger-setValue-value" name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-LiteralNull"
            name="LiteralNull">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralNull-_generalization.0"
              general="Syntax-Classes-Kernel-LiteralSpecification"
              specific="Syntax-Classes-Kernel-LiteralNull"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-LiteralSpecification"
            name="LiteralSpecification" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralSpecification-_generalization.0"
              general="Syntax-Classes-Kernel-ValueSpecification"
              specific="Syntax-Classes-Kernel-LiteralSpecification"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-LiteralString"
            name="LiteralString">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralString-_generalization.0"
              general="Syntax-Classes-Kernel-LiteralSpecification"
              specific="Syntax-Classes-Kernel-LiteralString"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-LiteralString-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralString-value-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-LiteralString-value">
                <body>The specified String value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-LiteralString-value-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-LiteralString-value-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-LiteralString-setValue" name="setValue"
              class="Syntax-Classes-Kernel-LiteralString">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralString-setValue-_ownedComment.0">
                <body>this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-LiteralString-setValue-value" name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural" name="LiteralUnlimitedNatural">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-_generalization.0"
              general="Syntax-Classes-Kernel-LiteralSpecification"
              specific="Syntax-Classes-Kernel-LiteralUnlimitedNatural"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-value-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-LiteralUnlimitedNatural-value">
                <body>The specified UnlimitedNatural value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
              <defaultValue xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-value-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
                <body>new UnlimitedNatural(0)</body>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue" name="setValue"
              class="Syntax-Classes-Kernel-LiteralUnlimitedNatural">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue-_ownedComment.0">
                <body>this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue-value" name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue.1" name="setValue"
              class="Syntax-Classes-Kernel-LiteralUnlimitedNatural">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue.1-_ownedComment.0">
                <body>this.setValue(new UnlimitedNatural(value));&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-LiteralUnlimitedNatural-setValue.1-value" name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-MultiplicityElement"
            name="MultiplicityElement">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-required_lower_and_upper_for_fUML"
              name="required_lower_and_upper_for_fUML"
              constrainedElement="Syntax-Classes-Kernel-MultiplicityElement"
              context="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-required_lower_and_upper_for_fUML-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-required_lower_and_upper_for_fUML">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16674" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;upperValue must be a LiteralUnlimitedNatural and lowerValue
                  must be a LiteralInteger. Both are
                  required.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-required_lower_and_upper_for_fUML-_specification">
                <language>OCL</language>
                <body>self.upperValue-&gt;notEmpty() and&#xD;
                  self.upperValue-&gt;asSequence()-&gt;first().oclIsKindOf(LiteralUnlimitedNatural)
                  and&#xD; self.lowerValue-&gt;notEmpty() and&#xD;
                  self.lowerValue-&gt;asSequence()-&gt;first().oclIsKindOf(LiteralInteger)
                </body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-_generalization.0"
              general="Syntax-Classes-Kernel-Element"
              specific="Syntax-Classes-Kernel-MultiplicityElement"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isOrdered" name="isOrdered">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isOrdered-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-isOrdered">
                <body>For a multivalued multiplicity, this attribute specifies whether the values in
                  an instantiation of this element are sequentially ordered..</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isOrdered-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-isOrdered">
                <body>For a multivalued multiplicity, this attribute specifies whether the values in
                  an instantiation of this element are sequentially ordered.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isOrdered-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isUnique" name="isUnique">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isUnique-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-isUnique">
                <body>For a multivalued multiplicity, this attributes specifies whether the values
                  in an instantiation of this element are unique.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-isUnique-_defaultValue"
                value="true">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper" name="upper" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-upper">
                <body>Specifies the upper bound of the multiplicity interval.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-upper">
                <body>Specifies the upper bound of the multiplicity interval, if it is expressed as
                  an unlimited natural.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper-_lowerValue"/>
              <defaultValue xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upper-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
                <body>new UnlimitedNatural(1)</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower" name="lower" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-lower">
                <body>Specifies the lower bound of the multiplicity interval.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-lower">
                <body>Specifies the lower bound of the multiplicity interval, if it is expressed as
                  an integer.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower-_lowerValue"/>
              <defaultValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lower-_defaultValue" value="1">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upperValue" name="upperValue"
              type="Syntax-Classes-Kernel-ValueSpecification" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_upperValue_owningUpper">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upperValue-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-upperValue">
                <body>The specification of the upper bound for this multiplicity.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upperValue-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-upperValue-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lowerValue" name="lowerValue"
              visibility="public" type="Syntax-Classes-Kernel-ValueSpecification"
              aggregation="composite" subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_lowerValue_owningLower">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lowerValue-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-MultiplicityElement-lowerValue">
                <body>The specification of the lower bound for this multiplicity.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lowerValue-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-lowerValue-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-MultiplicityElement"
              name="MultiplicityElement" class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-MultiplicityElement-_ownedComment.0">
                <body>// This constructor sets upperValue and lowerValue consistently with the
                  initializers for upper and lower.&#xD; &#xD; this.setUpper(1);&#xD;
                  this.setLower(1);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsOrdered" name="setIsOrdered"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsOrdered-_ownedComment.0">
                <body>this.isOrdered = isOrdered;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsOrdered-isOrdered"
                name="isOrdered">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsUnique" name="setIsUnique"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsUnique-_ownedComment.0">
                <body>this.isUnique = isUnique;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setIsUnique-isUnique"
                name="isUnique">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpperValue" name="setUpperValue"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpperValue-_ownedComment.0">
                <body>this.upperValue = upperValue;&#xD; &#xD; if (upperValue instanceof
                  LiteralUnlimitedNatural) {&#xD; this.upper =
                  ((LiteralUnlimitedNatural)upperValue).value;&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpperValue-upperValue"
                name="upperValue" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLowerValue" name="setLowerValue"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLowerValue-_ownedComment.0">
                <body>this.lowerValue = lowerValue;&#xD; &#xD; if (lowerValue instanceof
                  LiteralInteger) {&#xD; this.lower =
                  ((LiteralInteger)lowerValue).value;&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLowerValue-lowerValue"
                name="lowerValue" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpper" name="setUpper"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpper-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setUpperValue, not in addition to it.&#xD; &#xD; this.upper = new
                  UnlimitedNatural(upper);&#xD; this.upperValue = new
                  LiteralUnlimitedNatural();&#xD;
                  ((LiteralUnlimitedNatural)this.upperValue).setValue(this.upper);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setUpper-upper" name="upper">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLower" name="setLower"
              class="Syntax-Classes-Kernel-MultiplicityElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLower-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setLowerValue, not in addition to it.&#xD; &#xD; this.lower =
                  lower;&#xD; this.lowerValue = new LiteralInteger();&#xD;
                  ((LiteralInteger)this.lowerValue).setValue(this.lower);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-MultiplicityElement-setLower-lower" name="lower">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-NamedElement"
            name="NamedElement" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-NamedElement-_generalization.0"
              general="Syntax-Classes-Kernel-Element" specific="Syntax-Classes-Kernel-NamedElement"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-NamedElement-name"
              name="name">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-NamedElement-name-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-NamedElement-name">
                <body>The name of the NamedElement.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-NamedElement-name-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-NamedElement-name-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-NamedElement-visibility" name="visibility"
              visibility="public" type="Syntax-Classes-Kernel-VisibilityKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-NamedElement-visibility-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-NamedElement-visibility">
                <body>Determines where the NamedElement appears within different Namespaces within
                  the overall model, and its accessibility.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-NamedElement-visibility-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-NamedElement-visibility-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-NamedElement-qualifiedName" name="qualifiedName"
              isReadOnly="true" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-NamedElement-qualifiedName-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-NamedElement-qualifiedName">
                <body>A name which allows the NamedElement to be identified within a hierarchy of
                  nested Namespaces. It is constructed from the names of the containing namespaces
                  starting at the root of the hierarchy and ending with the name of the NamedElement
                  itself.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-NamedElement-qualifiedName-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-NamedElement-qualifiedName-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-NamedElement-namespace" name="namespace"
              type="Syntax-Classes-Kernel-Namespace" isReadOnly="true" isDerived="true"
              isDerivedUnion="true" subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_ownedMember_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-NamedElement-namespace-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-NamedElement-namespace-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-NamedElement-setName" name="setName"
              class="Syntax-Classes-Kernel-NamedElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-NamedElement-setName-_ownedComment.0">
                <body>this.name = name;&#xD; &#xD; if (name != null) {&#xD; if
                  (this.namespace == null) {&#xD; this.qualifiedName = name;&#xD; } else if
                  (this.namespace.qualifiedName != null) {&#xD; this.qualifiedName =
                  this.namespace.qualifiedName + "::" + name;&#xD; }&#xD; }&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-NamedElement-setName-name" name="name">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-NamedElement-setVisibility" name="setVisibility"
              class="Syntax-Classes-Kernel-NamedElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-NamedElement-setVisibility-_ownedComment.0">
                <body>this.visibility = visibility;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-NamedElement-setVisibility-visibility"
                name="visibility" type="Syntax-Classes-Kernel-VisibilityKind"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Namespace"
            name="Namespace" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Namespace-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-Classes-Kernel-Namespace"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Namespace-member"
              name="member" type="Syntax-Classes-Kernel-NamedElement" isReadOnly="true"
              isDerived="true" isDerivedUnion="true"
              association="Syntax-Classes-Kernel-A_member_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Namespace-member-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Namespace-member-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Namespace-ownedMember" name="ownedMember"
              type="Syntax-Classes-Kernel-NamedElement" isReadOnly="true" isDerived="true"
              isDerivedUnion="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-member Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_ownedMember_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Namespace-ownedMember-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Namespace-ownedMember-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Namespace-elementImport" name="elementImport"
              visibility="public" type="Syntax-Classes-Kernel-ElementImport" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_elementImport_importingNamespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Namespace-elementImport-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Namespace-elementImport-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Namespace-packageImport" name="packageImport"
              visibility="public" type="Syntax-Classes-Kernel-PackageImport" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_packageImport_importingNamespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Namespace-packageImport-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Namespace-packageImport-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Namespace-importedMember" name="importedMember"
              visibility="public" type="Syntax-Classes-Kernel-PackageableElement" isReadOnly="true"
              isDerived="true" subsettedProperty="Syntax-Classes-Kernel-Namespace-member"
              association="Syntax-Classes-Kernel-A_importedMember_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Namespace-importedMember-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Namespace-importedMember-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Namespace-addOwnedMember" name="addOwnedMember"
              visibility="protected" class="Syntax-Classes-Kernel-Namespace">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Namespace-addOwnedMember-_ownedComment.0">
                <body>this.addOwnedElement(ownedMember);&#xD; &#xD;
                  this.ownedMember.addValue(ownedMember);&#xD; ownedMember.namespace =
                  this;&#xD; &#xD; this.addMember(ownedMember);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Namespace-addOwnedMember-ownedMember"
                name="ownedMember" type="Syntax-Classes-Kernel-NamedElement"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Namespace-addMember" name="addMember"
              visibility="protected" class="Syntax-Classes-Kernel-Namespace">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Namespace-addMember-_ownedComment.0">
                <body>// Note: This operation should not be used for owned members. The operation
                  addOwnedMember should be used instead.&#xD; &#xD; //
                  Debug.println("[addMember] member is a " + member.getClass().getName() + "; name =
                  " + member.name);&#xD; &#xD; this.member.addValue(member);&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Namespace-addMember-member" name="member"
                type="Syntax-Classes-Kernel-NamedElement"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Namespace-addElementImport" name="addElementImport"
              class="Syntax-Classes-Kernel-Namespace">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Namespace-addElementImport-_ownedComment.0">
                <body>this.addOwnedElement(elementImport);&#xD; &#xD;
                  this.elementImport.addValue(elementImport);&#xD;
                  elementImport.importingNamespace = this;&#xD; &#xD;
                  this.addImportedMember(elementImport.importedElement);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Namespace-addElementImport-elementImport"
                name="elementImport" type="Syntax-Classes-Kernel-ElementImport"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Namespace-addPackageImport" name="addPackageImport"
              class="Syntax-Classes-Kernel-Namespace">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Namespace-addPackageImport-_ownedComment.0">
                <body>this.addOwnedElement(packageImport);&#xD; &#xD;
                  this.packageImport.addValue(packageImport);&#xD;
                  packageImport.importingNamespace = this;&#xD; &#xD; PackageableElementList
                  importedElements = packageImport.importedPackage.visibleMembers();&#xD; for
                  (int i = 0; i &lt; importedElements.size(); i++) {&#xD; PackageableElement
                  importedElement = importedElements.getValue(i);&#xD;
                  this.addImportedMember(importedElement);&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Namespace-addPackageImport-packageImport"
                name="packageImport" type="Syntax-Classes-Kernel-PackageImport"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Namespace-addImportedMember" name="addImportedMember"
              visibility="private" class="Syntax-Classes-Kernel-Namespace">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Namespace-addImportedMember-_ownedComment.0">
                <body>this.addMember(importedMember);&#xD;
                  this.importedMember.addValue(importedMember);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Namespace-addImportedMember-importedMember"
                name="importedMember" type="Syntax-Classes-Kernel-PackageableElement"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Operation"
            name="Operation">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Operation-zero_or_one_method" name="zero_or_one_method"
              constrainedElement="Syntax-Classes-Kernel-Operation"
              context="Syntax-Classes-Kernel-Operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-zero_or_one_method-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-zero_or_one_method">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;If an operation is abstract it must have no method. Otherwise
                  it must have exactly one method.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Operation-zero_or_one_method-_specification">
                <language>OCL</language>
                <body>(self.isAbstract and self.method-&gt;isEmpty()) xor (not self.isAbstract
                  and self.method-&gt;size() = 1)</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Operation-_generalization.0"
              general="Syntax-Classes-Kernel-BehavioralFeature"
              specific="Syntax-Classes-Kernel-Operation"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Operation-isQuery"
              name="isQuery">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-isQuery-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-isQuery">
                <body>Specifies whether an execution of the BehavioralFeature leaves the state of
                  the system unchanged (isQuery=true) or whether side effects may occur
                  (isQuery=false).</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Operation-isQuery-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Operation-isOrdered" name="isOrdered" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-isOrdered-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-isOrdered">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-isOrdered-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-isOrdered">
                <body>Specifies whether the return parameter is ordered or not, if present.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Operation-isOrdered-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Operation-isUnique" name="isUnique" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-isUnique-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-isUnique">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-isUnique-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-isUnique">
                <body>Specifies whether the return parameter is unique or not, if present.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Operation-isUnique-_defaultValue" value="true">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Operation-lower"
              name="lower" visibility="public" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-lower-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-lower">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-lower-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-lower">
                <body>Specifies the lower multiplicity of the return parameter, if present.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-lower-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-lower-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Operation-upper"
              name="upper" visibility="public" isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-upper-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-upper">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-upper-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-upper">
                <body>Specifies the upper multiplicity of the return parameter, if present.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-upper-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-upper-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Operation-class"
              name="class" type="Syntax-Classes-Kernel-Class"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace Syntax-Classes-Kernel-Feature-featuringClassifier"
              association="Syntax-Classes-Kernel-A_ownedOperation_class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-class-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-class">
                <body>The class that owns the operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-class-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-class">
                <body>The class that owns this operation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-class-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-class-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Operation-redefinedOperation" name="redefinedOperation"
              type="Syntax-Classes-Kernel-Operation"
              association="Syntax-Classes-Kernel-A_redefinedOperation_operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-redefinedOperation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-redefinedOperation">
                <body>References the Operations that are redefined by this Operation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-redefinedOperation-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-redefinedOperation-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Operation-type"
              name="type" type="Syntax-Classes-Kernel-Type" isDerived="true"
              association="Syntax-Classes-Kernel-A_type_operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-type-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Operation-type">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-type-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Operation-type">
                <body>Specifies the return result of the operation, if present.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-type-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Operation-ownedParameter" name="ownedParameter"
              type="Syntax-Classes-Kernel-Parameter" isOrdered="true" aggregation="composite"
              redefinedProperty="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter"
              association="Syntax-Classes-Kernel-A_ownedParameter_operation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Operation-ownedParameter-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Operation-ownedParameter-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Operation-setIsQuery" name="setIsQuery"
              class="Syntax-Classes-Kernel-Operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-setIsQuery-_ownedComment.0">
                <body>this.isQuery = isQuery;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Operation-setIsQuery-isQuery" name="isQuery">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Operation-addOwnedParameter" name="addOwnedParameter"
              class="Syntax-Classes-Kernel-Operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-addOwnedParameter-_ownedComment.0">
                <body>super.addOwnedParameter(ownedParameter);&#xD;
                  this.ownedParameter.addValue(ownedParameter);&#xD; ownedParameter.operation =
                  this;&#xD; &#xD; if (ownedParameter.direction ==
                  ParameterDirectionKind.return_) {&#xD; this.isOrdered =
                  ownedParameter.multiplicityElement.isOrdered;&#xD; this.isUnique =
                  ownedParameter.multiplicityElement.isUnique;&#xD; this.lower =
                  ownedParameter.multiplicityElement.lower;&#xD; this.upper =
                  ownedParameter.multiplicityElement.upper;&#xD; this.type =
                  ownedParameter.type;&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Operation-addOwnedParameter-ownedParameter"
                name="ownedParameter" type="Syntax-Classes-Kernel-Parameter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Operation-addRedefinedOperation"
              name="addRedefinedOperation" class="Syntax-Classes-Kernel-Operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-addRedefinedOperation-_ownedComment.0">
                <body>super.addRedefinedElement(redefinedOperation);&#xD;
                  this.redefinedOperation.addValue(redefinedOperation);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Operation-addRedefinedOperation-redefinedOperation"
                name="redefinedOperation" type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Operation-addMethod" name="addMethod"
              class="Syntax-Classes-Kernel-Operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Operation-addMethod-_ownedComment.0">
                <body>// Note: To have a method, an operation must be owned by a class. The method
                  must be an owned behavior of the class.&#xD; &#xD;
                  this.method.addValue(method);&#xD; method.specification = this;&#xD;
                  &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Operation-addMethod-method" name="method"
                type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Package"
            name="Package">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Package-_generalization.0"
              general="Syntax-Classes-Kernel-Namespace" specific="Syntax-Classes-Kernel-Package"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Package-_generalization.1"
              general="Syntax-Classes-Kernel-PackageableElement"
              specific="Syntax-Classes-Kernel-Package"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Package-packagedElement" name="packagedElement"
              visibility="public" type="Syntax-Classes-Kernel-PackageableElement"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_packageElement_owningPackage">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Package-packagedElement-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Package-packagedElement-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Package-ownedType"
              name="ownedType" visibility="public" type="Syntax-Classes-Kernel-Type"
              isDerived="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Package-packagedElement"
              association="Syntax-Classes-Kernel-A_type_package">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Package-ownedType-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Package-ownedType-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Package-nestedPackage" name="nestedPackage"
              visibility="public" type="Syntax-Classes-Kernel-Package" isDerived="true"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Package-packagedElement"
              association="Syntax-Classes-Kernel-A_nestedPackage_nestingPackage">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Package-nestedPackage-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Package-nestedPackage-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Package-nestingPackage" name="nestingPackage"
              visibility="public" type="Syntax-Classes-Kernel-Package"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_nestedPackage_nestingPackage">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Package-nestingPackage-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Package-nestingPackage-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Package-addPackagedElement" name="addPackagedElement"
              class="Syntax-Classes-Kernel-Package">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Package-addPackagedElement-_ownedComment.0">
                <body>super.addOwnedMember(packagedElement);&#xD;
                  this.packagedElement.addValue(packagedElement);&#xD; &#xD; if
                  (packagedElement instanceof Type) {&#xD;
                  this.ownedType.addValue((Type)packagedElement);&#xD;
                  ((Type)packagedElement).package_ = this;&#xD; }&#xD; &#xD; if
                  (packagedElement instanceof Package) {&#xD;
                  this.nestedPackage.addValue((Package)packagedElement);&#xD;
                  ((Package)packagedElement).nestingPackage = this;&#xD; }&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Package-addPackagedElement-packagedElement"
                name="packagedElement" type="Syntax-Classes-Kernel-PackageableElement"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Package-visibleMembers" name="visibleMembers"
              class="Syntax-Classes-Kernel-Package">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Package-visibleMembers-_ownedComment.0">
                <body>PackageableElementList visibleMembers = new PackageableElementList();&#xD;
                  &#xD; for (int i = 0; i &lt; this.packagedElement.size(); i++) {&#xD;
                  PackageableElement member = this.packagedElement.getValue(i);&#xD; if
                  (this.makesVisible(member)) {&#xD; visibleMembers.addValue(member);&#xD;
                  }&#xD; }&#xD; &#xD; return visibleMembers;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Package-visibleMembers-_ownedParameter.0" name=""
                type="Syntax-Classes-Kernel-PackageableElement" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Package-visibleMembers-_ownedParameter.0-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Package-visibleMembers-_ownedParameter.0-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Package-makesVisible" name="makesVisible"
              class="Syntax-Classes-Kernel-Package">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Package-makesVisible-_ownedComment.0">
                <body>for (int i = 0; i &lt; this.ownedMember.size(); i++) {&#xD;
                  NamedElement member = this.ownedMember.getValue(i);&#xD; if (member == el)
                  {&#xD; return member.visibility == null || member.visibility ==
                  VisibilityKind.public_;&#xD; }&#xD; }&#xD; &#xD; for (int i=0; i
                  &lt; this.elementImport.size(); i++) {&#xD; ElementImport elementImport =
                  this.elementImport.getValue(i);&#xD; if (elementImport.importedElement == el)
                  {&#xD; return true;&#xD; }&#xD; }&#xD; &#xD; for (int i=0; i
                  &lt; this.packageImport.size(); i++) {&#xD; PackageImport packageImport =
                  this.packageImport.getValue(i);&#xD; if (packageImport.visibility ==
                  VisibilityKind.public_) {&#xD; // NOTE: This won't work unless the imported
                  package members have already been loaded&#xD; NamedElementList packageMembers
                  = packageImport.importedPackage.member;&#xD; for (int j=0; j &lt;
                  packageMembers.size(); j++) {&#xD; if (packageMembers.getValue(j) == el)
                  {&#xD; return true;&#xD; }&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; return false;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Package-makesVisible-el" name="el"
                type="Syntax-Classes-Kernel-NamedElement"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Package-makesVisible-_ownedParameter.1" name=""
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-PackageableElement"
            name="PackageableElement" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-PackageableElement-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-Classes-Kernel-PackageableElement"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Parameter"
            name="Parameter">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Parameter-_generalization.0"
              general="Syntax-Classes-Kernel-TypedElement"
              specific="Syntax-Classes-Kernel-Parameter"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Parameter-_generalization.1"
              general="Syntax-Classes-Kernel-MultiplicityElement"
              specific="Syntax-Classes-Kernel-Parameter"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Parameter-direction" name="direction"
              visibility="public" type="Syntax-Classes-Kernel-ParameterDirectionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-direction-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Parameter-direction">
                <body>Indicates whether a parameter is being sent into or out of a behavioral
                  element.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Parameter-operation" name="operation"
              type="Syntax-Classes-Kernel-Operation"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_ownedParameter_operation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-operation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Parameter-operation">
                <body>References the Operation for which this is a formal parameter.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-operation-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Parameter-operation">
                <body>References the Operation owning this parameter.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Parameter-operation-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Parameter-operation-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setDirection" name="setDirection"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setDirection-_ownedComment.0">
                <body>this.direction = direction;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setDirection-direction" name="direction"
                type="Syntax-Classes-Kernel-ParameterDirectionKind"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setIsOrdered" name="setIsOrdered"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setIsOrdered-_ownedComment.0">
                <body>this.multiplicityElement.setIsOrdered(isOrdered);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setIsOrdered-isOrdered" name="isOrdered">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setIsUnique" name="setIsUnique"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setIsUnique-_ownedComment.0">
                <body>this.multiplicityElement.setIsUnique(isUnique);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setIsUnique-isUnique" name="isUnique">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setUpperValue" name="setUpperValue"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setUpperValue-_ownedComment.0">
                <body>this.multiplicityElement.setUpperValue(upperValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setUpperValue-upperValue" name="upperValue"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setLowerValue" name="setLowerValue"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setLowerValue-_ownedComment.0">
                <body>this.multiplicityElement.setLowerValue(lowerValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setLowerValue-lowerValue" name="lowerValue"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setUpper" name="setUpper"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setUpper-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setUpperValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setUpper(upper);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setUpper-upper" name="upper">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Parameter-setLower" name="setLower"
              class="Syntax-Classes-Kernel-Parameter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Parameter-setLower-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setLowerValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setLower(lower);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Parameter-setLower-lower" name="lower">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-PrimitiveType"
            name="PrimitiveType">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-PrimitiveType-_generalization.0"
              general="Syntax-Classes-Kernel-DataType"
              specific="Syntax-Classes-Kernel-PrimitiveType"> </generalization>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Property"
            name="Property">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Property-no_derivation" name="no_derivation"
              constrainedElement="Syntax-Classes-Kernel-Property"
              context="Syntax-Classes-Kernel-Property">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-no_derivation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-no_derivation">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isDerived and isDerivedUnion must be
                  false&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Property-no_derivation-_specification">
                <language>OCL</language>
                <body>not self.isDerived and not self.isDerivedUnion</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Property-_generalization.0"
              general="Syntax-Classes-Kernel-StructuralFeature"
              specific="Syntax-Classes-Kernel-Property"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-isDerived" name="isDerived">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isDerived-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-isDerived">
                <body>If isDerived is true, the value of the attribute is derived from information
                  elsewhere.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isDerived-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Property-isDerived">
                <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="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Property-isDerived-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-isReadOnly" name="isReadOnly"
              redefinedProperty="Syntax-Classes-Kernel-StructuralFeature-isReadOnly">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isReadOnly-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-isReadOnly">
                <body>This redefines the corresponding attribute in Basic::Property and
                  Abstractions::StructuralFeature.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isReadOnly-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Property-isReadOnly">
                <body>If true, the attribute may only be read, and not written.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Property-isReadOnly-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-isDerivedUnion" name="isDerivedUnion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isDerivedUnion-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-isDerivedUnion">
                <body>Specifies whether the property is derived as the union of all of the
                  properties that are constrained to subset it.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Property-isDerivedUnion-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-aggregation" name="aggregation"
              visibility="public" type="Syntax-Classes-Kernel-AggregationKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-aggregation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-aggregation">
                <body>Specifies the kind of aggregation that applies to the Property.</body>
              </ownedComment>
              <defaultValue xmi:type="uml:InstanceValue"
                xmi:id="Syntax-Classes-Kernel-Property-aggregation-none" name="none"
                type="Syntax-Classes-Kernel-AggregationKind"
                instance="Syntax-Classes-Kernel-AggregationKind-none"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-isComposite" name="isComposite"
              isDerived="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isComposite-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-isComposite">
                <body>If isComposite is true, the object containing the attribute is a container for
                  the object or value contained in the attribute.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-isComposite-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Property-isComposite">
                <body>This is a derived value, indicating whether the aggregation of the Property is
                  composite or not.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Property-isComposite-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-owningAssociation" name="owningAssociation"
              type="Syntax-Classes-Kernel-Association"
              subsettedProperty="Syntax-Classes-Kernel-Property-association Syntax-Classes-Kernel-Feature-featuringClassifier Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_ownedEnd_owningAssociation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-owningAssociation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-owningAssociation">
                <body>References the owning association of this property, if any.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-owningAssociation-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Property-owningAssociation">
                <body>References the owning association of this property.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Property-owningAssociation-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Property-owningAssociation-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Property-datatype"
              name="datatype" type="Syntax-Classes-Kernel-DataType"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace Syntax-Classes-Kernel-A_attribute_classifier-classifier Syntax-Classes-Kernel-Feature-featuringClassifier"
              association="Syntax-Classes-Kernel-A_ownedAttribute_datatype">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-datatype-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-datatype">
                <body>The DataType that owns this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-datatype-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Property-datatype">
                <body>The DataType that owns this Property. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Property-datatype-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Property-datatype-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Property-association" name="association"
              type="Syntax-Classes-Kernel-Association"
              association="Syntax-Classes-Kernel-A_memberEnd_association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-association-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Property-association">
                <body>References the association of which this property is a member, if any.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Property-association-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Property-association-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Property-class"
              name="class" type="Syntax-Classes-Kernel-Class"
              subsettedProperty="Syntax-Classes-Kernel-A_general_classifier-classifier Syntax-Classes-Kernel-Feature-featuringClassifier Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_ownedAttribute_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Property-class-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Property-class-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Property-opposite"
              name="opposite" type="Syntax-Classes-Kernel-Property" isDerived="true"
              association="Syntax-Classes-Kernel-A_opposite_property">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Property-opposite-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Property-opposite-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Property-setIsReadOnly" name="setIsReadOnly"
              class="Syntax-Classes-Kernel-Property">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-setIsReadOnly-_ownedComment.0">
                <body>this.isReadOnly = isReadOnly;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Property-setIsReadOnly-isReadOnly" name="isReadOnly">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Property-setAggregation" name="setAggregation"
              class="Syntax-Classes-Kernel-Property">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Property-setAggregation-_ownedComment.0">
                <body>this.aggregation = aggregation;&#xD; this.isComposite = (aggregation ==
                  AggregationKind.composite);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Property-setAggregation-aggregation"
                name="aggregation" type="Syntax-Classes-Kernel-AggregationKind"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Slot" name="Slot">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Slot-_generalization.0"
              general="Syntax-Classes-Kernel-Element" specific="Syntax-Classes-Kernel-Slot"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Slot-owningInstance" name="owningInstance"
              type="Syntax-Classes-Kernel-InstanceSpecification"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_slot_owningInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Slot-owningInstance-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Slot-owningInstance">
                <body>The instance specification that owns this slot.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Slot-owningInstance-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Slot-owningInstance-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Slot-definingFeature" name="definingFeature"
              type="Syntax-Classes-Kernel-StructuralFeature"
              association="Syntax-Classes-Kernel-A_definingFeature_slot">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Slot-definingFeature-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Slot-definingFeature">
                <body>The structural feature that specifies the values that may be held by the
                slot.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Slot-definingFeature-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Slot-definingFeature-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Slot-value"
              name="value" type="Syntax-Classes-Kernel-ValueSpecification" isOrdered="true"
              aggregation="composite" subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_value_owningSlot">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Slot-value-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Slot-value">
                <body>The value or values corresponding to the defining feature for the owning
                  instance specification.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Slot-value-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Slot-value-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Slot-setDefiningFeature" name="setDefiningFeature"
              class="Syntax-Classes-Kernel-Slot">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Slot-setDefiningFeature-_ownedComment.0">
                <body>this.definingFeature = definingFeature;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Slot-setDefiningFeature-definingFeature"
                name="definingFeature" type="Syntax-Classes-Kernel-StructuralFeature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Syntax-Classes-Kernel-Slot-addValue"
              name="addValue" class="Syntax-Classes-Kernel-Slot">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Slot-addValue-_ownedComment.0">
                <body>this.addOwnedElement(value);&#xD; this.value.addValue(value);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Slot-addValue-value" name="value"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Type" name="Type"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Type-_generalization.0"
              general="Syntax-Classes-Kernel-PackageableElement"
              specific="Syntax-Classes-Kernel-Type"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Type-package"
              name="package" visibility="public" type="Syntax-Classes-Kernel-Package"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_type_package">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Type-package-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Type-package-_lowerValue"/>
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-TypedElement"
            name="TypedElement">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-TypedElement-_generalization.0"
              general="Syntax-Classes-Kernel-NamedElement"
              specific="Syntax-Classes-Kernel-TypedElement"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-TypedElement-type"
              name="type" type="Syntax-Classes-Kernel-Type"
              association="Syntax-Classes-Kernel-A_type_typedElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-TypedElement-type-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-TypedElement-type">
                <body>Redefines the corresponding property from Basic to derive this information
                  from the return result for this Operation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-TypedElement-type-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-TypedElement-type">
                <body>The type of the TypedElement.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-TypedElement-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-TypedElement-type-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-TypedElement-setType" name="setType"
              class="Syntax-Classes-Kernel-TypedElement">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-TypedElement-setType-_ownedComment.0">
                <body>this.type = type;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-TypedElement-setType-type" name="type"
                type="Syntax-Classes-Kernel-Type"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration" xmi:id="Syntax-Classes-Kernel-AggregationKind"
            name="AggregationKind">
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-AggregationKind-none" name="none"
              enumeration="Syntax-Classes-Kernel-AggregationKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-AggregationKind-none-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-AggregationKind-none">
                <body>Indicates that the property has no aggregation.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-AggregationKind-shared" name="shared"
              enumeration="Syntax-Classes-Kernel-AggregationKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-AggregationKind-shared-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-AggregationKind-shared">
                <body>Indicates that the property has a shared aggregation.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-AggregationKind-composite" name="composite"
              enumeration="Syntax-Classes-Kernel-AggregationKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-AggregationKind-composite-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-AggregationKind-composite">
                <body>Indicates that the property is aggregated compositely, i.e., the composite
                  object has responsibility for the existence and storage of the composed objects
                  (parts).</body>
              </ownedComment>
            </ownedLiteral>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration"
            xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind" name="ParameterDirectionKind">
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-in" name="in"
              enumeration="Syntax-Classes-Kernel-ParameterDirectionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-in-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-ParameterDirectionKind-in">
                <body>Indicates that parameter values are passed into the behavioral element by the
                  caller.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-inout" name="inout"
              enumeration="Syntax-Classes-Kernel-ParameterDirectionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-inout-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-ParameterDirectionKind-inout">
                <body>Indicates that parameter values are passed into a behavioral element by the
                  caller and then back out to the caller from the behavioral element.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-out" name="out"
              enumeration="Syntax-Classes-Kernel-ParameterDirectionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-out-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-ParameterDirectionKind-out">
                <body>Indicates that parameter values are passed from a behavioral element out to
                  the caller.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-return" name="return"
              enumeration="Syntax-Classes-Kernel-ParameterDirectionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-return-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-ParameterDirectionKind-return">
                <body>Indicates that parameter values are passed as return values from a behavioral
                  element back to the caller.</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-ParameterDirectionKind-return-_specification"/>
            </ownedLiteral>
          </packagedElement>
          <packagedElement xmi:type="uml:Enumeration" xmi:id="Syntax-Classes-Kernel-VisibilityKind"
            name="VisibilityKind">
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-VisibilityKind-public" name="public"
              enumeration="Syntax-Classes-Kernel-VisibilityKind"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-VisibilityKind-private" name="private"
              enumeration="Syntax-Classes-Kernel-VisibilityKind"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-VisibilityKind-protected" name="protected"
              enumeration="Syntax-Classes-Kernel-VisibilityKind"/>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Classes-Kernel-VisibilityKind-package" name="package"
              enumeration="Syntax-Classes-Kernel-VisibilityKind"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Class" name="Class">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Class-active_class_classifier_behavior"
              name="active_class_classifier_behavior"
              constrainedElement="Syntax-Classes-Kernel-Class" context="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-active_class_classifier_behavior-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-active_class_classifier_behavior">
                <body>Only active classes may have classifier behaviors.</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Class-active_class_classifier_behavior-_specification">
                <language>OCL</language>
                <body>self.classifierBehavior-&gt;notEmpty() implies self.isActive&#xD;
                </body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Class-active_class_specialization"
              name="active_class_specialization" constrainedElement="Syntax-Classes-Kernel-Class"
              context="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-active_class_specialization-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-active_class_specialization Syntax-Classes-Kernel-Class">
                <body>Only an active class may specialize an active class.</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Class-active_class_specialization-_specification">
                <language>OCL</language>
                <body>self.parents()-&gt;exist(isActive) implies self.isActive</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint" xmi:id="Syntax-Classes-Kernel-Class-abstract_class"
              name="abstract_class" constrainedElement="Syntax-Classes-Kernel-Class"
              context="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-abstract_class-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-abstract_class Syntax-Classes-Kernel-Class">
                <body>Only an abstract class may have abstract behavioral features.</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Class-abstract_class-_specification">
                <language>OCL</language>
                <body>self.member-&gt;select(oclIsKindOf(BehavioralFeature))-&gt;exists(isAbstract)
                  implies self.isAbstract</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Class-_generalization.0"
              general="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"
              specific="Syntax-Classes-Kernel-Class"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Class-isAbstract"
              name="isAbstract" redefinedProperty="Syntax-Classes-Kernel-Classifier-isAbstract">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-isAbstract-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-isAbstract">
                <body>True when a class is abstract.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-isAbstract-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-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>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Class-isAbstract-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Class-ownedOperation" name="ownedOperation"
              type="Syntax-Classes-Kernel-Operation" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Classifier-feature Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_ownedOperation_class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-ownedOperation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-ownedOperation">
                <body>The operations owned by the class.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Class-ownedOperation-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Class-ownedOperation-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Class-superClass"
              name="superClass" type="Syntax-Classes-Kernel-Class" isDerived="true"
              association="Syntax-Classes-Kernel-A_superClass_class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-superClass-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-superClass">
                <body>This gives the superclasses of a class.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Class-superClass-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Class-superClass-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Class-isActive"
              name="isActive">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-isActive-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-isActive">
                <body>Determines whether an object specified by this class is active or not. If
                  true, then the owning class is referred to as an active class. If false, then such
                  a class is referred to as a passive class.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Class-isActive-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Class-ownedReception" name="ownedReception"
              type="Syntax-CommonBehaviors-Communications-Reception" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember Syntax-Classes-Kernel-Classifier-feature"
              association="Syntax-Classes-Kernel-A_ownedReception_class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-ownedReception-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Class-ownedReception">
                <body>Receptions that objects of this class are willing to accept.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Class-ownedReception-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Class-ownedReception-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Class-ownedAttribute" name="ownedAttribute"
              type="Syntax-Classes-Kernel-Property" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Classifier-attribute Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_ownedAttribute_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Class-ownedAttribute-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Class-ownedAttribute-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Class-nestedClassifier" name="nestedClassifier"
              visibility="public" type="Syntax-Classes-Kernel-Classifier" isOrdered="true"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_nestedClassifier_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Class-nestedClassifier-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Class-nestedClassifier-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-setIsAbstract" name="setIsAbstract"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-setIsAbstract-_ownedComment.0">
                <body>this.isAbstract = isAbstract;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-setIsAbstract-isAbstract" name="isAbstract">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-setIsActive" name="setIsActive"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-setIsActive-_ownedComment.0">
                <body>this.isActive = isActive;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-setIsActive-isActive" name="isActive">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-addGeneralization" name="addGeneralization"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-addGeneralization-_ownedComment.0">
                <body>super.addGeneralization(generalization);&#xD; &#xD; if
                  (generalization.general instanceof Class_) {&#xD;
                  this.superClass.addValue((Class_)generalization.general);&#xD; }&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-addGeneralization-generalization"
                name="generalization" type="Syntax-Classes-Kernel-Generalization"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-addOwnedAttribute" name="addOwnedAttribute"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedAttribute-_ownedComment.0">
                <body>super.addAttribute(ownedAttribute);&#xD;
                  super.addOwnedMember(ownedAttribute);&#xD; &#xD;
                  this.ownedAttribute.addValue(ownedAttribute);&#xD; ownedAttribute.class_ =
                  this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedAttribute-ownedAttribute"
                name="ownedAttribute" type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-addOwnedOperation" name="addOwnedOperation"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedOperation-_ownedComment.0">
                <body>super.addFeature(ownedOperation);&#xD;
                  super.addOwnedMember(ownedOperation);&#xD; &#xD;
                  this.ownedOperation.addValue(ownedOperation);&#xD; ownedOperation.class_ =
                  this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedOperation-ownedOperation"
                name="ownedOperation" type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-addOwnedReception" name="addOwnedReception"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedReception-_ownedComment.0">
                <body>super.addOwnedMember(ownedReception);&#xD;
                  super.addFeature(ownedReception);&#xD; &#xD;
                  this.ownedReception.addValue(ownedReception);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-addOwnedReception-ownedReception"
                name="ownedReception" type="Syntax-CommonBehaviors-Communications-Reception"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Syntax-Classes-Kernel-Class-inherit"
              name="inherit" visibility="public" class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-inherit-_ownedComment.0">
                <body>// "The inherit operation is overridden to exclude redefined
                  properties."&#xD; &#xD; RedefinableElementList redefinableMembers = new
                  RedefinableElementList();&#xD; &#xD; for (int i = 0; i &lt;
                  this.ownedMember.size(); i++) {&#xD; if (this.ownedMember.getValue(i)
                  instanceof RedefinableElement) {&#xD;
                  redefinableMembers.addValue((RedefinableElement)this.ownedMember.getValue(i));&#xD;
                  }&#xD; }&#xD; &#xD; NamedElementList inherited = new
                  NamedElementList();&#xD; &#xD; for (int i = 0; i &lt;inhs.size(); i++)
                  {&#xD; NamedElement inh = inhs.getValue(i);&#xD; boolean exclude =
                  false;&#xD; for (int j = 0; j &lt; redefinableMembers.size(); j++)
                  {&#xD; RedefinableElementList redefinedElements =
                  redefinableMembers.getValue(j).redefinedElement;&#xD; for (int k = 0; k
                  &lt; redefinedElements.size(); k++) {&#xD; if
                  (redefinedElements.getValue(k) == inh) {&#xD; exclude = true;&#xD;
                  break;&#xD; }&#xD; }&#xD; if (exclude) break;&#xD; }&#xD;
                  &#xD; if (!exclude) {&#xD; inherited.addValue(inh);&#xD; }&#xD;
                  }&#xD; &#xD; return inherited;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-inherit-inhs" name="inhs"
                type="Syntax-Classes-Kernel-NamedElement">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Class-inherit-inhs-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Class-inherit-inhs-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-inherit-OwnedParameter" name="OwnedParameter"
                type="Syntax-Classes-Kernel-NamedElement" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Class-inherit-OwnedParameter-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Class-inherit-OwnedParameter-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Class-addNestedClassifier" name="addNestedClassifier"
              class="Syntax-Classes-Kernel-Class">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Class-addNestedClassifier-_ownedComment.0">
                <body>this.addOwnedMember(nestedClassifier);&#xD;
                  this.nestedClassifier.addValue(nestedClassifier);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Class-addNestedClassifier-nestedClassifier"
                name="nestedClassifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Classifier"
            name="Classifier" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Classifier-_generalization.0"
              general="Syntax-Classes-Kernel-Type" specific="Syntax-Classes-Kernel-Classifier"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Classifier-_generalization.1"
              general="Syntax-Classes-Kernel-Namespace" specific="Syntax-Classes-Kernel-Classifier"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-isAbstract" name="isAbstract">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-isAbstract-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Classifier-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>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Classifier-isAbstract-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-generalization" name="generalization"
              type="Syntax-Classes-Kernel-Generalization" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_generalization_specific">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-generalization-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Classifier-generalization">
                <body>Specifies the Generalization relationships for this Classifier. These
                  Generalizations navigaten to more general classifiers in the generalization
                  hierarchy.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Classifier-generalization-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Classifier-generalization-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-feature" name="feature"
              type="Syntax-Classes-Kernel-Feature" isReadOnly="true" isDerived="true"
              isDerivedUnion="true"
              association="Syntax-Classes-Kernel-A_feature_featuringClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-feature-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Classifier-feature">
                <body>Redefines the corresponding association in Abstractions. Note that there may
                  be members of the Classifier that are of the type Feature but are not included in
                  this association, e.g. inherited features.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-feature-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Classifier-feature">
                <body>Specifies each feature defined in the classifier.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Classifier-feature-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Classifier-feature-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-inheritedMember" name="inheritedMember"
              type="Syntax-Classes-Kernel-NamedElement" isReadOnly="true" isDerived="true"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-member"
              association="Syntax-Classes-Kernel-A_inheritedMember_classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritedMember-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Classifier-inheritedMember">
                <body>Specifies all elements inherited by this classifier from the general
                  classifiers.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritedMember-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritedMember-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-attribute" name="attribute"
              type="Syntax-Classes-Kernel-Property" isReadOnly="true" isDerived="true"
              isDerivedUnion="true" association="Syntax-Classes-Kernel-A_attribute_classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-attribute-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Classifier-attribute">
                <body>Refers to all of the Properties that are direct (i.e. not inherited or import
                  fUML.Syntax.d) attributes of the classifier.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Classifier-attribute-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Classifier-attribute-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-general" name="general"
              type="Syntax-Classes-Kernel-Classifier" isDerived="true"
              association="Syntax-Classes-Kernel-A_general_classifier">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Classifier-general-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Classifier-general-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Classifier-isFinalSpecialization"
              name="isFinalSpecialization" visibility="public">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Classifier-isFinalSpecialization-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-addFeature" name="addFeature"
              visibility="protected" class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-addFeature-_ownedComment.0">
                <body>// Note: This operation should not be used directly to add Properties. The
                  addAttribute operation should be used instead.&#xD; &#xD;
                  this.feature.addValue(feature);&#xD;
                  feature.featuringClassifier.add(this);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-addFeature-feature" name="feature"
                type="Syntax-Classes-Kernel-Feature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-addAttribute" name="addAttribute"
              visibility="protected" class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-addAttribute-_ownedComment.0">
                <body>this.addFeature(attribute);&#xD;
                  this.attribute.addValue(attribute);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-addAttribute-attribute" name="attribute"
                type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-addGeneralization" name="addGeneralization"
              class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-addGeneralization-_ownedComment.0">
                <body>this.addOwnedElement(generalization);&#xD;
                  this.generalization.addValue(generalization);&#xD; generalization.specific =
                  this;&#xD; this.general.addValue(generalization.general);&#xD; &#xD;
                  NamedElementList inheritedMembers =
                  this.inherit(generalization.general.inheritableMembers(this));&#xD; &#xD;
                  for (int i = 0; i &lt; inheritedMembers.size(); i++) {&#xD; NamedElement
                  inheritedMember = inheritedMembers.getValue(i);&#xD;
                  this.addMember(inheritedMember);&#xD;
                  this.inheritedMember.addValue(inheritedMember);&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-addGeneralization-generalization"
                name="generalization" type="Syntax-Classes-Kernel-Generalization"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-setIsAbstract" name="setIsAbstract"
              class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-setIsAbstract-_ownedComment.0">
                <body>this.isAbstract = isAbstract;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-setIsAbstract-isAbstract" name="isAbstract">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-inherit" name="inherit"
              class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-inherit-_ownedComment.0">
                <body>NamedElementList inheritedElements = new NamedElementList();&#xD;
                  &#xD; for (int i = 0; i &lt; inhs.size(); i++) {&#xD;
                  inheritedElements.addValue(inhs.getValue(i));&#xD; }&#xD; &#xD; return
                  inheritedElements;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-inherit-inhs" name="inhs"
                type="Syntax-Classes-Kernel-NamedElement">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inherit-inhs-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inherit-inhs-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-inherit-OwnedParameter"
                name="OwnedParameter" type="Syntax-Classes-Kernel-NamedElement" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inherit-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inherit-OwnedParameter-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers" name="inheritableMembers"
              class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers-_ownedComment.0">
                <body>NamedElementList inheritable = new NamedElementList();&#xD; &#xD; for
                  (int i = 0; i &lt; this.member.size(); i++) {&#xD; NamedElement m =
                  this.member.getValue(i);&#xD; if (c.hasVisibilityOf(m)) {&#xD;
                  inheritable.addValue(m);&#xD; }&#xD; }&#xD; &#xD; return
                  inheritable;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers-c" name="c"
                type="Syntax-Classes-Kernel-Classifier"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers-OwnedParameter"
                name="OwnedParameter" type="Syntax-Classes-Kernel-NamedElement" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Syntax-Classes-Kernel-Classifier-inheritableMembers-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-hasVisibilityOf" name="hasVisibilityOf"
              class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-hasVisibilityOf-_ownedComment.0">
                <body>for (int i = 0; i &lt; this.inheritedMember.size(); i++) {&#xD; if
                  (this.inheritedMember.getValue(i) == n) {&#xD; return n.visibility !=
                  VisibilityKind.private_;&#xD; }&#xD; }&#xD; &#xD; return
                  true;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-hasVisibilityOf-n" name="n"
                type="Syntax-Classes-Kernel-NamedElement"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-hasVisibilityOf-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Classifier-setIsFinalSpecialization"
              name="setIsFinalSpecialization" class="Syntax-Classes-Kernel-Classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Classifier-setIsFinalSpecialization-_ownedComment.0">
                <body>this.isFinalSpecialization = isFinalSpecialization;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Classifier-setIsFinalSpecialization-isFinalSpecialization"
                name="isFinalSpecialization">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-DataType"
            name="DataType">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-DataType-_generalization.0"
              general="Syntax-Classes-Kernel-Classifier" specific="Syntax-Classes-Kernel-DataType"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-DataType-ownedAttribute" name="ownedAttribute"
              type="Syntax-Classes-Kernel-Property" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Classifier-attribute Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_ownedAttribute_datatype">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-DataType-ownedAttribute-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-DataType-ownedAttribute">
                <body>The Attributes owned by the DataType.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-DataType-ownedAttribute-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-DataType-ownedAttribute-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-DataType-addOwnedAttribute" name="addOwnedAttribute"
              class="Syntax-Classes-Kernel-DataType">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-DataType-addOwnedAttribute-_ownedComment.0">
                <body>super.addAttribute(ownedAttribute);&#xD;
                  super.addOwnedMember(ownedAttribute);&#xD; &#xD;
                  this.ownedAttribute.addValue(ownedAttribute);&#xD; ownedAttribute.datatype =
                  this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-DataType-addOwnedAttribute-ownedAttribute"
                name="ownedAttribute" type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Element"
            name="Element" isAbstract="true">
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Element-ownedElement" name="ownedElement"
              type="Syntax-Classes-Kernel-Element" isReadOnly="true" isDerived="true"
              isDerivedUnion="true" aggregation="composite"
              association="Syntax-Classes-Kernel-A_ownedElement_owner">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Element-ownedElement-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Element-ownedElement">
                <body>The Elements owned by this element.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Element-ownedElement-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Element-ownedElement-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Element-owner"
              name="owner" type="Syntax-Classes-Kernel-Element" isReadOnly="true" isDerived="true"
              isDerivedUnion="true" association="Syntax-Classes-Kernel-A_ownedElement_owner">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Element-owner-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Element-owner">
                <body>The Element that owns this element.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Element-owner-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Element-owner-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Element-ownedComment" name="ownedComment"
              visibility="public" type="Syntax-Classes-Kernel-Comment" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_ownedComment_owningElement">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Element-ownedComment-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Element-ownedComment-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Element-addOwnedElement" name="addOwnedElement"
              visibility="protected" class="Syntax-Classes-Kernel-Element">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Element-addOwnedElement-_ownedComment.0">
                <body>this.ownedElement.add(ownedElement);&#xD; ownedElement.owner =
                  this;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Element-addOwnedElement-ownedElement"
                name="ownedElement" type="Syntax-Classes-Kernel-Element"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Enumeration"
            name="Enumeration">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Enumeration-_generalization.0"
              general="Syntax-Classes-Kernel-DataType" specific="Syntax-Classes-Kernel-Enumeration"> </generalization>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Enumeration-ownedLiteral" name="ownedLiteral"
              type="Syntax-Classes-Kernel-EnumerationLiteral" isOrdered="true"
              aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_ownedLiteral_enumeration">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Enumeration-ownedLiteral-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Enumeration-ownedLiteral">
                <body>The ordered collection of literals for the enumeration.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Enumeration-ownedLiteral-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Enumeration-ownedLiteral">
                <body>The ordered set of literals for this Enumeration.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Enumeration-ownedLiteral-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Enumeration-ownedLiteral-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Enumeration-addOwnedLiteral" name="addOwnedLiteral"
              class="Syntax-Classes-Kernel-Enumeration">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Enumeration-addOwnedLiteral-_ownedComment.0">
                <body>super.addOwnedMember(ownedLiteral);&#xD; &#xD;
                  this.ownedLiteral.addValue(ownedLiteral);&#xD; ownedLiteral.enumeration =
                  this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Enumeration-addOwnedLiteral-ownedLiteral"
                name="ownedLiteral" type="Syntax-Classes-Kernel-EnumerationLiteral"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-EnumerationLiteral"
            name="EnumerationLiteral">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-_generalization.0"
              general="Syntax-Classes-Kernel-InstanceSpecification"
              specific="Syntax-Classes-Kernel-EnumerationLiteral"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-enumeration" name="enumeration"
              type="Syntax-Classes-Kernel-Enumeration"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_ownedLiteral_enumeration">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-enumeration-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-EnumerationLiteral-enumeration">
                <body>The enumeration that this literal belongs to.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-enumeration-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-EnumerationLiteral-enumeration">
                <body>The Enumeration that this EnumerationLiteral is a member of.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-enumeration-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-EnumerationLiteral-enumeration-_lowerValue"/>
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Feature"
            name="Feature" isAbstract="true">
            <ownedRule xmi:type="uml:Constraint" xmi:id="Syntax-Classes-Kernel-Feature-non_static"
              name="non_static" constrainedElement="Syntax-Classes-Kernel-Feature"
              context="Syntax-Classes-Kernel-Feature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Feature-non_static-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Feature-non_static">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16674" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isStatic must be
                  false&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Feature-non_static-_specification">
                <language>OCL</language>
                <body>not self.isStatic</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Feature-_generalization.0"
              general="Syntax-Classes-Kernel-RedefinableElement"
              specific="Syntax-Classes-Kernel-Feature"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Feature-isStatic"
              name="isStatic">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Feature-isStatic-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Feature-isStatic">
                <body>Specifies whether this feature characterizes individual instances classified
                  by the classifier (false) or the classifier itself (true).</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Feature-isStatic-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Feature-featuringClassifier" name="featuringClassifier"
              type="Syntax-Classes-Kernel-Classifier" isReadOnly="true" isDerived="true"
              isDerivedUnion="true"
              association="Syntax-Classes-Kernel-A_feature_featuringClassifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Feature-featuringClassifier-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Feature-featuringClassifier">
                <body>Redefines the corresponding association in Abstractions.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Feature-featuringClassifier-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Feature-featuringClassifier">
                <body>The Classifiers that have this Feature as a feature.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Feature-featuringClassifier-_upperValue" name=""
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Feature-featuringClassifier-_lowerValue"/>
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Generalization"
            name="Generalization">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Generalization-_generalization.0"
              general="Syntax-Classes-Kernel-Element"
              specific="Syntax-Classes-Kernel-Generalization"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Generalization-isSubstitutable" name="isSubstitutable">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Generalization-isSubstitutable-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Generalization-isSubstitutable">
                <body>Indicates whether the specific classifier can be used wherever the general
                  classifier can be used. If true, the execution traces of the specific classifier
                  will be a superset of the execution traces of the general classifier.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Generalization-isSubstitutable-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Generalization-isSubstitutable-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Generalization-specific" name="specific"
              type="Syntax-Classes-Kernel-Classifier"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_generalization_specific">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Generalization-specific-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Generalization-specific">
                <body>References the specializing classifier in the Generalization
                relationship.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Generalization-specific-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Generalization-specific-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Generalization-general" name="general"
              type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Classes-Kernel-A_general_generalization">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Generalization-general-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Generalization-general">
                <body>References the general classifier in the Generalization relationship.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Generalization-general-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Generalization-general-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Generalization-setIsSubstitutable"
              name="setIsSubstitutable" class="Syntax-Classes-Kernel-Generalization">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Generalization-setIsSubstitutable-_ownedComment.0">
                <body>this.isSubstitutable = isSubstitutable;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Generalization-setIsSubstitutable-isSubstitutable"
                name="isSubstitutable">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Generalization-setGeneral" name="setGeneral"
              class="Syntax-Classes-Kernel-Generalization">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Generalization-setGeneral-_ownedComment.0">
                <body>this.general = general;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Generalization-setGeneral-general" name="general"
                type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Association"
            name="Association">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Association-owns_memberEnds" name="owns_memberEnds"
              constrainedElement="Syntax-Classes-Kernel-Association"
              context="Syntax-Classes-Kernel-Association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-owns_memberEnds-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-owns_memberEnds">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;An association must own all its
                  memberEnds.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Association-owns_memberEnds-_specification">
                <language>OCL</language>
                <body>self.memberEnd-&gt;symmetricDifference(self.ownedEnd)-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Classes-Kernel-Association-no_derivation" name="no_derivation"
              constrainedElement="Syntax-Classes-Kernel-Association"
              context="Syntax-Classes-Kernel-Association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-no_derivation-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-no_derivation">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isDerived must be
                  false&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Classes-Kernel-Association-no_derivation-_specification">
                <language>OCL</language>
                <body>not self.isDerived</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-Association-_generalization.0"
              general="Syntax-Classes-Kernel-Classifier"
              specific="Syntax-Classes-Kernel-Association"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Association-isDerived" name="isDerived">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-isDerived-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-isDerived">
                <body>Specifies whether the association is derived from other model elements such as
                  other associations or constraints.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Classes-Kernel-Association-isDerived-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Association-ownedEnd" name="ownedEnd"
              type="Syntax-Classes-Kernel-Property" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Association-memberEnd Syntax-Classes-Kernel-Namespace-ownedMember Syntax-Classes-Kernel-Classifier-feature"
              association="Syntax-Classes-Kernel-A_ownedEnd_owningAssociation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-ownedEnd-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-ownedEnd">
                <body>The ends that are owned by the association itself. This is an ordered
                  association.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-ownedEnd-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Association-ownedEnd">
                <body>The ends that are owned by the association itself.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Association-ownedEnd-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Association-ownedEnd-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Association-endType" name="endType"
              type="Syntax-Classes-Kernel-Type" isOrdered="true" isReadOnly="true" isDerived="true"
              association="Syntax-Classes-Kernel-A_endType_association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-endType-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-endType">
                <body>References the classifiers that are used as types of the ends of the
                  association.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Association-endType-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Association-endType-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Association-memberEnd" name="memberEnd"
              type="Syntax-Classes-Kernel-Property" isOrdered="true"
              subsettedProperty="Syntax-Classes-Kernel-Namespace-ownedMember"
              association="Syntax-Classes-Kernel-A_memberEnd_association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-memberEnd-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-memberEnd">
                <body>Each end represents participation of instances of the classifier connected to
                  the end in links of the association. This is an ordered association.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-memberEnd-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-Association-memberEnd">
                <body>Each end represents participation of instances of the classifier connected to
                  the end in links of the association.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Association-memberEnd-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Association-memberEnd-_lowerValue" value="2"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Association-navigableOwnedEnd" name="navigableOwnedEnd"
              type="Syntax-Classes-Kernel-Property"
              subsettedProperty="Syntax-Classes-Kernel-Association-ownedEnd"
              association="Syntax-Classes-Kernel-A_navigableOwnedEnd_association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-navigableOwnedEnd-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-Association-navigableOwnedEnd">
                <body>The navigable ends that are owned by the association itself.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Association-navigableOwnedEnd-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Association-navigableOwnedEnd-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Association-addOwnedEnd" name="addOwnedEnd"
              class="Syntax-Classes-Kernel-Association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-addOwnedEnd-_ownedComment.0">
                <body>super.addFeature(ownedEnd);&#xD; super.addOwnedMember(ownedEnd);&#xD;
                  &#xD; this.ownedEnd.addValue(ownedEnd);&#xD; ownedEnd.owningAssociation =
                  this;&#xD; &#xD; this.memberEnd.addValue(ownedEnd);&#xD;
                  ownedEnd.association = this;&#xD; &#xD;
                  this.endType.addValue(ownedEnd.typedElement.type);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Association-addOwnedEnd-ownedEnd" name="ownedEnd"
                type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-Association-addNavigableOwnedEnd"
              name="addNavigableOwnedEnd" class="Syntax-Classes-Kernel-Association">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-Association-addNavigableOwnedEnd-_ownedComment.0">
                <body>// Note: A navigable end must also be set as an owned end using
                  setOwnedEnd.&#xD; &#xD;
                  this.navigableOwnedEnd.addValue(navigableOwnedEnd);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-Association-addNavigableOwnedEnd-navigableOwnedEnd"
                name="navigableOwnedEnd" type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_navigableOwnedEnd_association"
            name="A_navigableOwnedEnd_association" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Association-navigableOwnedEnd Syntax-Classes-Kernel-A_navigableOwnedEnd_association-association">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_navigableOwnedEnd_association-association"
              name="association" type="Syntax-Classes-Kernel-Association"
              owningAssociation="Syntax-Classes-Kernel-A_navigableOwnedEnd_association"
              association="Syntax-Classes-Kernel-A_navigableOwnedEnd_association">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_navigableOwnedEnd_association-association-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_navigableOwnedEnd_association-association-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_endType_association" name="A_endType_association"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Association-endType Syntax-Classes-Kernel-A_endType_association-association">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_endType_association-association" name="association"
              type="Syntax-Classes-Kernel-Association"
              owningAssociation="Syntax-Classes-Kernel-A_endType_association"
              association="Syntax-Classes-Kernel-A_endType_association">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_endType_association-association-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_endType_association-association-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_memberEnd_association" name="A_memberEnd_association"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Association-memberEnd Syntax-Classes-Kernel-Property-association"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedEnd_owningAssociation"
            name="A_ownedEnd_owningAssociation" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Association-ownedEnd Syntax-Classes-Kernel-Property-owningAssociation"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_general_generalization" name="A_general_generalization"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Generalization-general Syntax-Classes-Kernel-A_general_generalization-generalization">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_general_generalization-generalization"
              name="generalization" type="Syntax-Classes-Kernel-Generalization"
              owningAssociation="Syntax-Classes-Kernel-A_general_generalization"
              association="Syntax-Classes-Kernel-A_general_generalization">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_general_generalization-generalization-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_general_generalization-generalization-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_feature_featuringClassifier"
            name="A_feature_featuringClassifier" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Classifier-feature Syntax-Classes-Kernel-Feature-featuringClassifier"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedLiteral_enumeration"
            name="A_ownedLiteral_enumeration" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Enumeration-ownedLiteral Syntax-Classes-Kernel-EnumerationLiteral-enumeration"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedElement_owner" name="A_ownedElement_owner"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Element-ownedElement Syntax-Classes-Kernel-Element-owner"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_attribute_classifier" name="A_attribute_classifier"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Classifier-attribute Syntax-Classes-Kernel-A_attribute_classifier-classifier">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_attribute_classifier-classifier" name="classifier"
              type="Syntax-Classes-Kernel-Classifier"
              owningAssociation="Syntax-Classes-Kernel-A_attribute_classifier"
              association="Syntax-Classes-Kernel-A_attribute_classifier">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_attribute_classifier-classifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_attribute_classifier-classifier-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_generalization_specific"
            name="A_generalization_specific" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Classifier-generalization Syntax-Classes-Kernel-Generalization-specific"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_general_classifier" name="A_general_classifier"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Classifier-general Syntax-Classes-Kernel-A_general_classifier-classifier">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_general_classifier-classifier" name="classifier"
              type="Syntax-Classes-Kernel-Classifier"
              owningAssociation="Syntax-Classes-Kernel-A_general_classifier"
              association="Syntax-Classes-Kernel-A_general_classifier">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-A_general_classifier-classifier-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-A_general_classifier-classifier">
                <body>References the general classifier in the Generalization relationship.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-A_general_classifier-classifier-_ownedComment.1"
                annotatedElement="Syntax-Classes-Kernel-A_general_classifier-classifier">
                <body>Specifies the general Classifiers for this Classifier.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_general_classifier-classifier-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_general_classifier-classifier-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_inheritedMember_classifier"
            name="A_inheritedMember_classifier" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Classifier-inheritedMember Syntax-Classes-Kernel-A_inheritedMember_classifier-classifier">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_inheritedMember_classifier-classifier"
              name="classifier" type="Syntax-Classes-Kernel-Classifier"
              owningAssociation="Syntax-Classes-Kernel-A_inheritedMember_classifier"
              association="Syntax-Classes-Kernel-A_inheritedMember_classifier">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_inheritedMember_classifier-classifier-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_inheritedMember_classifier-classifier-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedAttribute_class" name="A_ownedAttribute_class"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Class-ownedAttribute Syntax-Classes-Kernel-Property-class"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedReception_class" name="A_ownedReception_class"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Class-ownedReception Syntax-Classes-Kernel-A_ownedReception_class-class">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_ownedReception_class-class" name="class"
              type="Syntax-Classes-Kernel-Class"
              owningAssociation="Syntax-Classes-Kernel-A_ownedReception_class"
              association="Syntax-Classes-Kernel-A_ownedReception_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_ownedReception_class-class-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_ownedReception_class-class-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_superClass_class" name="A_superClass_class"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Class-superClass Syntax-Classes-Kernel-A_superClass_class-class">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_superClass_class-class" name="class"
              type="Syntax-Classes-Kernel-Class"
              owningAssociation="Syntax-Classes-Kernel-A_superClass_class"
              association="Syntax-Classes-Kernel-A_superClass_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_superClass_class-class-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_superClass_class-class-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_type_typedElement" name="A_type_typedElement"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-TypedElement-type Syntax-Classes-Kernel-A_type_typedElement-typedElement">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_type_typedElement-typedElement" name="typedElement"
              type="Syntax-Classes-Kernel-TypedElement"
              owningAssociation="Syntax-Classes-Kernel-A_type_typedElement"
              association="Syntax-Classes-Kernel-A_type_typedElement">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_type_typedElement-typedElement-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_type_typedElement-typedElement-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_value_owningSlot" name="A_value_owningSlot"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Slot-value Syntax-Classes-Kernel-A_value_owningSlot-owningSlot">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_value_owningSlot-owningSlot" name="owningSlot"
              type="Syntax-Classes-Kernel-Slot"
              owningAssociation="Syntax-Classes-Kernel-A_value_owningSlot"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Classes-Kernel-A_value_owningSlot">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_value_owningSlot-owningSlot-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_value_owningSlot-owningSlot-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_definingFeature_slot" name="A_definingFeature_slot"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Slot-definingFeature Syntax-Classes-Kernel-A_definingFeature_slot-slot">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_definingFeature_slot-slot" name="slot"
              type="Syntax-Classes-Kernel-Slot"
              owningAssociation="Syntax-Classes-Kernel-A_definingFeature_slot"
              association="Syntax-Classes-Kernel-A_definingFeature_slot">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_definingFeature_slot-slot-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_definingFeature_slot-slot-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_opposite_property" name="A_opposite_property"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Property-opposite Syntax-Classes-Kernel-A_opposite_property-property">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_opposite_property-property" name="property"
              type="Syntax-Classes-Kernel-Property"
              owningAssociation="Syntax-Classes-Kernel-A_opposite_property"
              association="Syntax-Classes-Kernel-A_opposite_property">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-A_opposite_property-property-_ownedComment.0"
                annotatedElement="Syntax-Classes-Kernel-A_opposite_property-property">
                <body>In the case where the property is one navigable end of a binary association
                  with both ends navigable, this gives the other end.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_opposite_property-property-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_opposite_property-property-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedAttribute_datatype"
            name="A_ownedAttribute_datatype" visibility="private"
            memberEnd="Syntax-Classes-Kernel-DataType-ownedAttribute Syntax-Classes-Kernel-Property-datatype"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedParameter_operation"
            name="A_ownedParameter_operation" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Operation-ownedParameter Syntax-Classes-Kernel-Parameter-operation"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_packageElement_owningPackage"
            name="A_packageElement_owningPackage" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Package-packagedElement Syntax-Classes-Kernel-A_packageElement_owningPackage-owningPackage">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_packageElement_owningPackage-owningPackage"
              name="owningPackage" type="Syntax-Classes-Kernel-Package"
              owningAssociation="Syntax-Classes-Kernel-A_packageElement_owningPackage"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_packageElement_owningPackage">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_packageElement_owningPackage-owningPackage-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_packageElement_owningPackage-owningPackage-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedOperation_class" name="A_ownedOperation_class"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Class-ownedOperation Syntax-Classes-Kernel-Operation-class"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_redefinedOperation_operation"
            name="A_redefinedOperation_operation" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Operation-redefinedOperation Syntax-Classes-Kernel-A_redefinedOperation_operation-operation">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_redefinedOperation_operation-operation"
              name="operation" type="Syntax-Classes-Kernel-Operation"
              owningAssociation="Syntax-Classes-Kernel-A_redefinedOperation_operation"
              association="Syntax-Classes-Kernel-A_redefinedOperation_operation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_type_operation" name="A_type_operation"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Operation-type Syntax-Classes-Kernel-A_type_operation-operation">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_type_operation-operation" name="operation"
              visibility="public" type="Syntax-Classes-Kernel-Operation"
              owningAssociation="Syntax-Classes-Kernel-A_type_operation"
              association="Syntax-Classes-Kernel-A_type_operation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_member_namespace" name="A_member_namespace"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Namespace-member Syntax-Classes-Kernel-A_member_namespace-namespace">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_member_namespace-namespace" name="namespace"
              visibility="public" type="Syntax-Classes-Kernel-Namespace"
              owningAssociation="Syntax-Classes-Kernel-A_member_namespace"
              association="Syntax-Classes-Kernel-A_member_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_member_namespace-namespace-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_member_namespace-namespace-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedMember_namespace" name="A_ownedMember_namespace"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Namespace-ownedMember Syntax-Classes-Kernel-NamedElement-namespace"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_lowerValue_owningLower" name="A_lowerValue_owningLower"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-MultiplicityElement-lowerValue Syntax-Classes-Kernel-A_lowerValue_owningLower-owningLower">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_lowerValue_owningLower-owningLower" name="owningLower"
              visibility="public" type="Syntax-Classes-Kernel-MultiplicityElement"
              owningAssociation="Syntax-Classes-Kernel-A_lowerValue_owningLower"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_lowerValue_owningLower">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_lowerValue_owningLower-owningLower-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_lowerValue_owningLower-owningLower-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_upperValue_owningUpper" name="A_upperValue_owningUpper"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-MultiplicityElement-upperValue Syntax-Classes-Kernel-A_upperValue_owningUpper-owningUpper">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_upperValue_owningUpper-owningUpper" name="owningUpper"
              type="Syntax-Classes-Kernel-MultiplicityElement"
              owningAssociation="Syntax-Classes-Kernel-A_upperValue_owningUpper"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_upperValue_owningUpper">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_upperValue_owningUpper-owningUpper-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_upperValue_owningUpper-owningUpper-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_instance_instanceValue" name="A_instance_instanceValue"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-InstanceValue-instance Syntax-Classes-Kernel-A_instance_instanceValue-instanceValue">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_instance_instanceValue-instanceValue"
              name="instanceValue" type="Syntax-Classes-Kernel-InstanceValue"
              owningAssociation="Syntax-Classes-Kernel-A_instance_instanceValue"
              association="Syntax-Classes-Kernel-A_instance_instanceValue"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_slot_owningInstance" name="A_slot_owningInstance"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-InstanceSpecification-slot Syntax-Classes-Kernel-Slot-owningInstance"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_classifier_instanceSpecification"
            name="A_classifier_instanceSpecification" visibility="private"
            memberEnd="Syntax-Classes-Kernel-InstanceSpecification-classifier Syntax-Classes-Kernel-A_classifier_instanceSpecification-instanceSpecification">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_classifier_instanceSpecification-instanceSpecification"
              name="instanceSpecification" type="Syntax-Classes-Kernel-InstanceSpecification"
              owningAssociation="Syntax-Classes-Kernel-A_classifier_instanceSpecification"
              association="Syntax-Classes-Kernel-A_classifier_instanceSpecification"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_method_specification" name="A_method_specification"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-BehavioralFeature-method Syntax-CommonBehaviors-BasicBehaviors-Behavior-specification"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam"
            name="A_ownedParameter_ownerFormalParam" visibility="private"
            memberEnd="Syntax-Classes-Kernel-BehavioralFeature-ownedParameter Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam-ownerFormalParam">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam-ownerFormalParam"
              name="ownerFormalParam" type="Syntax-Classes-Kernel-BehavioralFeature"
              owningAssociation="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam-ownerFormalParam-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_ownedParameter_ownerFormalParam-ownerFormalParam-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement"
            name="A_redefinitionContext_redefinableElement" visibility="private"
            memberEnd="Syntax-Classes-Kernel-RedefinableElement-redefinitionContext Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement-redefinableElement">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement-redefinableElement"
              name="redefinableElement" type="Syntax-Classes-Kernel-RedefinableElement"
              owningAssociation="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement"
              association="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement-redefinableElement-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_redefinitionContext_redefinableElement-redefinableElement-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement"
            name="A_redefinedElement_redefinableElement" visibility="private"
            memberEnd="Syntax-Classes-Kernel-RedefinableElement-redefinedElement Syntax-Classes-Kernel-A_redefinedElement_redefinableElement-redefinableElement">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement-redefinableElement"
              name="redefinableElement" type="Syntax-Classes-Kernel-RedefinableElement"
              owningAssociation="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement"
              association="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement-redefinableElement-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_redefinedElement_redefinableElement-redefinableElement-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-Comment"
            name="Comment">
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-Comment-annotatedElement" name="annotatedElement"
              visibility="public" type="Syntax-Classes-Kernel-Element"
              association="Syntax-Classes-Kernel-A_annotatedElement_comment">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Comment-annotatedElement-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Comment-annotatedElement-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Syntax-Classes-Kernel-Comment-body"
              name="body" visibility="public">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-Comment-body-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-Comment-body-_lowerValue"/>
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_ownedComment_owningElement"
            name="A_ownedComment_owningElement" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Element-ownedComment Syntax-Classes-Kernel-A_ownedComment_owningElement-owningElement">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_ownedComment_owningElement-owningElement"
              name="owningElement" visibility="public" type="Syntax-Classes-Kernel-Element"
              owningAssociation="Syntax-Classes-Kernel-A_ownedComment_owningElement"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_ownedComment_owningElement">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_ownedComment_owningElement-owningElement-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_ownedComment_owningElement-owningElement-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_annotatedElement_comment"
            name="A_annotatedElement_comment" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Comment-annotatedElement Syntax-Classes-Kernel-A_annotatedElement_comment-comment">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_annotatedElement_comment-comment" name="comment"
              visibility="public" type="Syntax-Classes-Kernel-Comment"
              owningAssociation="Syntax-Classes-Kernel-A_annotatedElement_comment"
              association="Syntax-Classes-Kernel-A_annotatedElement_comment">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_annotatedElement_comment-comment-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_annotatedElement_comment-comment-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-ElementImport"
            name="ElementImport">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-ElementImport-_generalization.0"
              general="Syntax-Classes-Kernel-Element" specific="Syntax-Classes-Kernel-ElementImport"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-ElementImport-visibility" name="visibility"
              visibility="public" type="Syntax-Classes-Kernel-VisibilityKind"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-ElementImport-alias" name="alias" visibility="public">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-ElementImport-alias-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-ElementImport-alias-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-ElementImport-importedElement" name="importedElement"
              visibility="public" type="Syntax-Classes-Kernel-PackageableElement"
              association="Syntax-Classes-Kernel-A_importedElement_elementImport">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-ElementImport-importedElement-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-ElementImport-importedElement-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-ElementImport-importingNamespace"
              name="importingNamespace" visibility="public" type="Syntax-Classes-Kernel-Namespace"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_elementImport_importingNamespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-ElementImport-importingNamespace-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-ElementImport-importingNamespace-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-ElementImport-setAlias" name="setAlias"
              class="Syntax-Classes-Kernel-ElementImport">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setAlias-_ownedComment.0">
                <body>this.alias = alias;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setAlias-alias" name="alias">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-ElementImport-setVisibility" name="setVisibility"
              class="Syntax-Classes-Kernel-ElementImport">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setVisibility-_ownedComment.0">
                <body>this.visibility = visibility;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setVisibility-visibility"
                name="visibility" type="Syntax-Classes-Kernel-VisibilityKind"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-ElementImport-setImportedElement"
              name="setImportedElement" class="Syntax-Classes-Kernel-ElementImport">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setImportedElement-_ownedComment.0">
                <body>this.importedElement = importedElement;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-ElementImport-setImportedElement-importedElement"
                name="importedElement" type="Syntax-Classes-Kernel-PackageableElement"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_elementImport_importingNamespace"
            name="A_elementImport_importingNamespace" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Namespace-elementImport Syntax-Classes-Kernel-ElementImport-importingNamespace"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_importedElement_elementImport"
            name="A_importedElement_elementImport" visibility="private"
            memberEnd="Syntax-Classes-Kernel-ElementImport-importedElement Syntax-Classes-Kernel-A_importedElement_elementImport-elementImport">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_importedElement_elementImport-elementImport"
              name="elementImport" visibility="public" type="Syntax-Classes-Kernel-ElementImport"
              owningAssociation="Syntax-Classes-Kernel-A_importedElement_elementImport"
              association="Syntax-Classes-Kernel-A_importedElement_elementImport">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_importedElement_elementImport-elementImport-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_importedElement_elementImport-elementImport-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Classes-Kernel-PackageImport"
            name="PackageImport">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Classes-Kernel-PackageImport-_generalization.0"
              general="Syntax-Classes-Kernel-Element" specific="Syntax-Classes-Kernel-PackageImport"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-PackageImport-visibility" name="visibility"
              visibility="public" type="Syntax-Classes-Kernel-VisibilityKind"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-PackageImport-importingNamespace"
              name="importingNamespace" visibility="public" type="Syntax-Classes-Kernel-Namespace"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Classes-Kernel-A_packageImport_importingNamespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-PackageImport-importingNamespace-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-PackageImport-importingNamespace-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-PackageImport-importedPackage" name="importedPackage"
              visibility="public" type="Syntax-Classes-Kernel-Package"
              association="Syntax-Classes-Kernel-A_importedPackage_packageImport">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-PackageImport-importedPackage-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-PackageImport-importedPackage-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-PackageImport-setVisibility" name="setVisibility"
              class="Syntax-Classes-Kernel-PackageImport">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-PackageImport-setVisibility-_ownedComment.0">
                <body>this.visibility = visibility;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-PackageImport-setVisibility-visibility"
                name="visibility" type="Syntax-Classes-Kernel-VisibilityKind"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Classes-Kernel-PackageImport-setImportedPackage"
              name="setImportedPackage" class="Syntax-Classes-Kernel-PackageImport">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Classes-Kernel-PackageImport-setImportedPackage-_ownedComment.0">
                <body>this.importedPackage = importedPackage;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Classes-Kernel-PackageImport-setImportedPackage-importedPackage"
                name="importedPackage" type="Syntax-Classes-Kernel-Package"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_packageImport_importingNamespace"
            name="A_packageImport_importingNamespace" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Namespace-packageImport Syntax-Classes-Kernel-PackageImport-importingNamespace"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_importedPackage_packageImport"
            name="A_importedPackage_packageImport" visibility="private"
            memberEnd="Syntax-Classes-Kernel-PackageImport-importedPackage Syntax-Classes-Kernel-A_importedPackage_packageImport-packageImport">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_importedPackage_packageImport-packageImport"
              name="packageImport" visibility="public" type="Syntax-Classes-Kernel-PackageImport"
              owningAssociation="Syntax-Classes-Kernel-A_importedPackage_packageImport"
              association="Syntax-Classes-Kernel-A_importedPackage_packageImport">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_importedPackage_packageImport-packageImport-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_importedPackage_packageImport-packageImport-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_nestedClassifier_class" name="A_nestedClassifier_class"
            visibility="private"
            memberEnd="Syntax-Classes-Kernel-Class-nestedClassifier Syntax-Classes-Kernel-A_nestedClassifier_class-class">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_nestedClassifier_class-class" name="class"
              visibility="public" type="Syntax-Classes-Kernel-Class"
              owningAssociation="Syntax-Classes-Kernel-A_nestedClassifier_class"
              subsettedProperty="Syntax-Classes-Kernel-NamedElement-namespace"
              association="Syntax-Classes-Kernel-A_nestedClassifier_class">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_nestedClassifier_class-class-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_nestedClassifier_class-class-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="Syntax-Classes-Kernel-A_type_package"
            name="A_type_package" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Package-ownedType Syntax-Classes-Kernel-Type-package"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_nestedPackage_nestingPackage"
            name="A_nestedPackage_nestingPackage" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Package-nestedPackage Syntax-Classes-Kernel-Package-nestingPackage"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Classes-Kernel-A_importedMember_namespace"
            name="A_importedMember_namespace" visibility="private"
            memberEnd="Syntax-Classes-Kernel-Namespace-importedMember Syntax-Classes-Kernel-A_importedMember_namespace-namespace">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Classes-Kernel-A_importedMember_namespace-namespace" name="namespace"
              visibility="public" type="Syntax-Classes-Kernel-Namespace"
              owningAssociation="Syntax-Classes-Kernel-A_importedMember_namespace"
              association="Syntax-Classes-Kernel-A_importedMember_namespace">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Classes-Kernel-A_importedMember_namespace-namespace-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Classes-Kernel-A_importedMember_namespace-namespace-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Activities" name="Activities">
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Activities-IntermediateActivities"
          name="IntermediateActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Activities-IntermediateActivities-_packageImport.0"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Syntax-Activities-IntermediateActivities"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ObjectFlow" name="ObjectFlow">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ObjectFlow-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ActivityEdge"
              specific="Syntax-Activities-IntermediateActivities-ObjectFlow"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode" name="ObjectNode"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ActivityNode"
              specific="Syntax-Activities-IntermediateActivities-ObjectNode"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode-_generalization.1"
              general="Syntax-Classes-Kernel-TypedElement"
              specific="Syntax-Activities-IntermediateActivities-ObjectNode"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode-setType" name="setType"
              class="Syntax-Activities-IntermediateActivities-ObjectNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode-setType-_ownedComment.0">
                <body>this.typedElement.type = type;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-ObjectNode-setType-type"
                name="type" type="Syntax-Classes-Kernel-Type"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-MergeNode" name="MergeNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-MergeNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-MergeNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-JoinNode" name="JoinNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-JoinNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-JoinNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-InitialNode" name="InitialNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-InitialNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-InitialNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-FinalNode" name="FinalNode"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-FinalNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-FinalNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ForkNode" name="ForkNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ForkNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-ForkNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ControlFlow" name="ControlFlow">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ControlFlow-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ActivityEdge"
              specific="Syntax-Activities-IntermediateActivities-ControlFlow"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ControlNode" name="ControlNode"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ControlNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ActivityNode"
              specific="Syntax-Activities-IntermediateActivities-ControlNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode" name="DecisionNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ControlNode"
              specific="Syntax-Activities-IntermediateActivities-DecisionNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput"
              name="decisionInput" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              association="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput">
                <body>Provides input to guard specifications on edges outgoing from the decision
                  node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInputFlow"
              name="decisionInputFlow" type="Syntax-Activities-IntermediateActivities-ObjectFlow"
              association="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInputFlow-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInputFlow-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInput"
              name="setDecisionInput" class="Syntax-Activities-IntermediateActivities-DecisionNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInput-_ownedComment.0">
                <body>this.decisionInput = decisionInput;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInput-decisionInput"
                name="decisionInput" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInputFlow"
              name="setDecisionInputFlow"
              class="Syntax-Activities-IntermediateActivities-DecisionNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInputFlow-_ownedComment.0">
                <body>this.decisionInputFlow = decisionInputFlow;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-DecisionNode-setDecisionInputFlow-decisionInputFlow"
                name="decisionInputFlow" type="Syntax-Activities-IntermediateActivities-ObjectFlow"
              />
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ActivityFinalNode"
            name="ActivityFinalNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityFinalNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-FinalNode"
              specific="Syntax-Activities-IntermediateActivities-ActivityFinalNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode" name="ActivityNode"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-_generalization.0"
              general="Syntax-Classes-Kernel-RedefinableElement"
              specific="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode"
              name="inStructuredNode"
              type="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_node_inStructuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode">
                <body>Structured activity node containing the node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-activity"
              name="activity" type="Syntax-Activities-IntermediateActivities-Activity"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Activities-IntermediateActivities-A_node_activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-activity-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityNode-activity">
                <body>Activity containing the node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-activity-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-activity-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing"
              name="outgoing" type="Syntax-Activities-IntermediateActivities-ActivityEdge"
              association="Syntax-Activities-IntermediateActivities-A_outgoing_source">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing">
                <body>Edges that have the node as source.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-incoming"
              name="incoming" type="Syntax-Activities-IntermediateActivities-ActivityEdge"
              association="Syntax-Activities-IntermediateActivities-A_target_incoming">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-incoming-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityNode-incoming">
                <body>Edges that have the node as target.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-incoming-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityNode-incoming-_lowerValue"
              />
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode"
            name="ActivityParameterNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ObjectNode"
              specific="Syntax-Activities-IntermediateActivities-ActivityParameterNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter"
              name="parameter" type="Syntax-Classes-Kernel-Parameter"
              association="Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter">
                <body>The parameter the object node will be accepting or providing values
                for.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-setParameter"
              name="setParameter"
              class="Syntax-Activities-IntermediateActivities-ActivityParameterNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-setParameter-_ownedComment.0">
                <body>this.parameter = parameter;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityParameterNode-setParameter-parameter"
                name="parameter" type="Syntax-Classes-Kernel-Parameter"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge" name="ActivityEdge"
            isAbstract="true">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-fUML_allowed_guards"
              name="fUML_allowed_guards"
              constrainedElement="Syntax-Activities-IntermediateActivities-ActivityEdge"
              context="Syntax-Activities-IntermediateActivities-ActivityEdge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-fUML_allowed_guards-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-fUML_allowed_guards">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;A guard is only allowed if the source of the edge is a
                  DecisionNode.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-fUML_allowed_guards-_specification">
                <language>OCL</language>
                <body>self.guard-&gt;notEmpty() implies
                self.source.oclIsKindOf(DecisionNode)</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-_generalization.0"
              general="Syntax-Classes-Kernel-RedefinableElement"
              specific="Syntax-Activities-IntermediateActivities-ActivityEdge"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-activity"
              name="activity" type="Syntax-Activities-IntermediateActivities-Activity"
              subsettedProperty="Syntax-Classes-Kernel-Element-owner"
              association="Syntax-Activities-IntermediateActivities-A_activity_edge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-activity-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-activity">
                <body>Activity containing the edge.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-activity-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-activity-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-source" name="source"
              type="Syntax-Activities-IntermediateActivities-ActivityNode"
              association="Syntax-Activities-IntermediateActivities-A_outgoing_source">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-source-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-source">
                <body>Node from which tokens are taken when they traverse the edge.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-source-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-source-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-target" name="target"
              type="Syntax-Activities-IntermediateActivities-ActivityNode"
              association="Syntax-Activities-IntermediateActivities-A_target_incoming">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-target-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-target">
                <body>Node to which tokens are put when they traverse the edge.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-target-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-target-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-guard" name="guard"
              type="Syntax-Classes-Kernel-ValueSpecification" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Activities-IntermediateActivities-A_activityEdge_guard">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-guard-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-guard">
                <body>Specification evaluated at runtime to determine if the edge can be
                traversed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-guard-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-guard-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode"
              name="inStructuredNode"
              type="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_edge_inStructuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode">
                <body>Structured activity node containing the edge.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setTarget"
              name="setTarget" class="Syntax-Activities-IntermediateActivities-ActivityEdge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setTarget-_ownedComment.0">
                <body>this.target = target;&#xD; target.incoming.addValue(this);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setTarget-target"
                name="target" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setSource"
              name="setSource" class="Syntax-Activities-IntermediateActivities-ActivityEdge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setSource-_ownedComment.0">
                <body>this.source = source;&#xD; source.outgoing.addValue(this);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setSource-source"
                name="source" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setGuard"
              name="setGuard" class="Syntax-Activities-IntermediateActivities-ActivityEdge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setGuard-_ownedComment.0">
                <body>if (guard != null) {&#xD; super.addOwnedElement(guard);&#xD;
                  }&#xD; &#xD; this.guard = guard;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-ActivityEdge-setGuard-guard"
                name="guard" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-IntermediateActivities-Activity" name="Activity">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-fUML_no_classifier_behavior"
              name="fUML_no_classifier_behavior"
              constrainedElement="Syntax-Activities-IntermediateActivities-Activity"
              context="Syntax-Activities-IntermediateActivities-Activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-fUML_no_classifier_behavior-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-Activity-fUML_no_classifier_behavior">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16674" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;An activity may be active, but cannot have a classifier
                  behavior.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-fUML_no_classifier_behavior-_specification">
                <language>OCL</language>
                <body>self.classifierBehavior-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-_generalization.0"
              general="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              specific="Syntax-Activities-IntermediateActivities-Activity"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-structuredNode"
              name="structuredNode"
              type="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              isReadOnly="true" isDerived="true" aggregation="composite"
              association="Syntax-Activities-CompleteStructuredActivities-A_activity_structuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-structuredNode-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-Activity-structuredNode">
                <body>Top-level structured nodes in the activity.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-structuredNode-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-structuredNode-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-node" name="node"
              type="Syntax-Activities-IntermediateActivities-ActivityNode" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Activities-IntermediateActivities-A_node_activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-node-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-Activity-node">
                <body>Nodes coordinated by the activity.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-node-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-node-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-isReadOnly"
              name="isReadOnly">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-isReadOnly-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-Activity-isReadOnly">
                <body>If true, this activity must not make any changes to variables outside the
                  activity or to objects. (This is an assertion, not an executable property. It may
                  be used by an execution engine to optimize model execution. If the assertion is
                  violated by the action, then the model is ill-formed.) The default is false (an
                  activity may make nonlocal changes).</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-isReadOnly-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-edge" name="edge"
              type="Syntax-Activities-IntermediateActivities-ActivityEdge" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Activities-IntermediateActivities-A_activity_edge">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-edge-_ownedComment.0"
                annotatedElement="Syntax-Activities-IntermediateActivities-Activity-edge">
                <body>Edges expressing flow between nodes of the activity.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-edge-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-edge-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-setIsReadOnly"
              name="setIsReadOnly" class="Syntax-Activities-IntermediateActivities-Activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-setIsReadOnly-_ownedComment.0">
                <body>this.isReadOnly = isReadOnly;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-setIsReadOnly-isReadOnly"
                name="isReadOnly">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-addNode" name="addNode"
              class="Syntax-Activities-IntermediateActivities-Activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-addNode-_ownedComment.0">
                <body>super.addOwnedElement(node);&#xD; &#xD;
                  this.node.addValue(node);&#xD; node.activity = this;&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-addNode-node" name="node"
                type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-addEdge" name="addEdge"
              class="Syntax-Activities-IntermediateActivities-Activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-addEdge-_ownedComment.0">
                <body>super.addOwnedElement(edge);&#xD; &#xD;
                  this.edge.addValue(edge);&#xD; edge.activity = this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-addEdge-edge" name="edge"
                type="Syntax-Activities-IntermediateActivities-ActivityEdge"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-IntermediateActivities-Activity-_setContext"
              name="_setContext" class="Syntax-Activities-IntermediateActivities-Activity">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-_setContext-_ownedComment.0">
                <body>// Note: The context of an activity should be set only _after_ all nodes have
                  been added to the activity.&#xD; &#xD;
                  super._setContext(context);&#xD; &#xD; for (int i = 0; i &lt;
                  this.node.size(); i++) {&#xD; ActivityNode node =
                  this.node.getValue(i);&#xD; if (node instanceof
                  fUML.Syntax.Actions.BasicActions.Action) {&#xD;
                  ((fUML.Syntax.Actions.BasicActions.Action)node).context = context;&#xD;
                  }&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-IntermediateActivities-Activity-_setContext-context"
                name="context" type="Syntax-CommonBehaviors-BasicBehaviors-BehavioredClassifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_activity_edge" name="A_activity_edge"
            visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-ActivityEdge-activity Syntax-Activities-IntermediateActivities-Activity-edge"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_activityEdge_guard"
            name="A_activityEdge_guard" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-A_activityEdge_guard-activityEdge Syntax-Activities-IntermediateActivities-ActivityEdge-guard">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-A_activityEdge_guard-activityEdge"
              name="activityEdge" type="Syntax-Activities-IntermediateActivities-ActivityEdge"
              owningAssociation="Syntax-Activities-IntermediateActivities-A_activityEdge_guard"
              association="Syntax-Activities-IntermediateActivities-A_activityEdge_guard"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode"
            name="A_parameter_activityParameterNode" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-ActivityParameterNode-parameter Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode-activityParameterNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode-activityParameterNode"
              name="activityParameterNode"
              type="Syntax-Activities-IntermediateActivities-ActivityParameterNode"
              owningAssociation="Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode"
              association="Syntax-Activities-IntermediateActivities-A_parameter_activityParameterNode"
            />
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_outgoing_source"
            name="A_outgoing_source" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-ActivityNode-outgoing Syntax-Activities-IntermediateActivities-ActivityEdge-source"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_node_activity" name="A_node_activity"
            visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-Activity-node Syntax-Activities-IntermediateActivities-ActivityNode-activity"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_target_incoming"
            name="A_target_incoming" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-ActivityEdge-target Syntax-Activities-IntermediateActivities-ActivityNode-incoming"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow"
            name="A_decisionNode_decisionInputFlow" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow-decisionNode Syntax-Activities-IntermediateActivities-DecisionNode-decisionInputFlow">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow-decisionNode"
              name="decisionNode" visibility="public"
              type="Syntax-Activities-IntermediateActivities-DecisionNode"
              owningAssociation="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow"
              association="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow-decisionNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-A_decisionNode_decisionInputFlow-decisionNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode"
            name="A_decisionInput_decisionNode" visibility="private"
            memberEnd="Syntax-Activities-IntermediateActivities-DecisionNode-decisionInput Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode-decisionNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode-decisionNode"
              name="decisionNode" type="Syntax-Activities-IntermediateActivities-DecisionNode"
              owningAssociation="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode"
              association="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode-decisionNode-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-IntermediateActivities-A_decisionInput_decisionNode-decisionNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package"
          xmi:id="Syntax-Activities-CompleteStructuredActivities"
          name="CompleteStructuredActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-_packageImport.0"
            importedPackage="Syntax-Actions-BasicActions"
            importingNamespace="Syntax-Activities-CompleteStructuredActivities"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
            name="StructuredActivityNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node"
              name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"
              aggregation="composite"
              association="Syntax-Activities-CompleteStructuredActivities-A_node_inStructuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node">
                <body>Nodes immediately contained in the group.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity"
              name="activity" type="Syntax-Activities-IntermediateActivities-Activity"
              association="Syntax-Activities-CompleteStructuredActivities-A_activity_structuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity">
                <body>Activity immediately containing the node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-mustIsolate"
              name="mustIsolate">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-mustIsolate-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-mustIsolate">
                <body>If true, then the actions in the node execute in isolation from actions
                  outside the node.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-mustIsolate-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge"
              name="edge" type="Syntax-Activities-IntermediateActivities-ActivityEdge"
              aggregation="composite"
              association="Syntax-Activities-CompleteStructuredActivities-A_edge_inStructuredNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge">
                <body>Edges immediately contained in the structured node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput"
              name="structuredNodeOutput" visibility="public"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeInput"
              name="structuredNodeInput" visibility="public"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeInput-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeInput-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-setMustIsolate"
              name="setMustIsolate"
              class="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-setMustIsolate-_ownedComment.0">
                <body>this.mustIsolate = mustIsolate;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-setMustIsolate-mustIsolate"
                name="mustIsolate">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addNode"
              name="addNode"
              class="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addNode-_ownedComment.0">
                <body>this.node.addValue(node);&#xD; node.inStructuredNode = this;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addNode-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addEdge"
              name="addEdge"
              class="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addEdge-_ownedComment.0">
                <body>this.edge.addValue(edge);&#xD; edge.inStructuredNode = this;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addEdge-edge"
                name="edge" type="Syntax-Activities-IntermediateActivities-ActivityEdge"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeOutput"
              name="addStructuredNodeOutput"
              class="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeOutput-_ownedComment.0">
                <body>this.addOutput(structuredNodeOutput);&#xD;
                  this.structuredNodeOutput.addValue(structuredNodeOutput);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeOutput-structuredNodeOutput"
                name="structuredNodeOutput" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeInput"
              name="addStructuredNodeInput"
              class="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeInput-_ownedComment.0">
                <body>this.addInput(structuredNodeInput);&#xD;
                  this.structuredNodeInput.addValue(structuredNodeInput);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-addStructuredNodeInput-structuredNodeInput"
                name="structuredNodeInput" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode" name="LoopNode">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-noSetupParts_in_fUML"
              name="noSetupParts_in_fUML"
              constrainedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              context="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-noSetupParts_in_fUML-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-noSetupParts_in_fUML">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16674" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;no setupParts in
                  fUML&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-noSetupParts_in_fUML-_specification">
                <language>OCL</language>
                <body>self.setupPart-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-_generalization.0"
              general="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              specific="Syntax-Activities-CompleteStructuredActivities-LoopNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-isTestedFirst"
              name="isTestedFirst">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-isTestedFirst-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-isTestedFirst">
                <body>If true, the test is performed before the first execution of the body. If
                  false, the body is executed once before the test is performed. </body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-isTestedFirst-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider"
              name="decider" type="Syntax-Actions-BasicActions-OutputPin"
              association="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider">
                <body>An output pin within the test fragment the value of which is examined after
                  execution of the test to determine whether to execute the loop body.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-test" name="test"
              type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-test-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-test">
                <body>The set of nodes, edges, and designated value that compute a Boolean value to
                  determine if another execution of the body will be performed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-test-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-test-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput"
              name="bodyOutput" type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true"
              association="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput">
                <body>A list of output pins within the body fragment the values of which are moved
                  to the loop variable pins after completion of execution of the body, before the
                  next iteration of the loop begins or before the loop exits.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput"
              name="loopVariableInput" type="Syntax-Actions-BasicActions-InputPin" isOrdered="true"
              aggregation="composite"
              redefinedProperty="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeInput"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput">
                <body>A list of values that are moved into the loop variable pins before the first
                  iteration of the loop.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyPart"
              name="bodyPart" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyPart-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyPart-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-result" name="result"
              visibility="public" type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true"
              aggregation="composite"
              redefinedProperty="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput"
              association="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-result-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-result-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariable"
              name="loopVariable" visibility="public" type="Syntax-Actions-BasicActions-OutputPin"
              isOrdered="true"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariable-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariable-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setupPart"
              name="setupPart" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setupPart-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setupPart-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setIsTestedFirst"
              name="setIsTestedFirst"
              class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setIsTestedFirst-_ownedComment.0">
                <body>this.isTestedFirst = isTestedFirst;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setIsTestedFirst-isTestedFirst"
                name="isTestedFirst">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addTest"
              name="addTest" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addTest-_ownedComment.0">
                <body>this.test.addValue(test);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addTest-test"
                name="test" type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyPart"
              name="addBodyPart" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyPart-_ownedComment.0">
                <body>this.bodyPart.addValue(bodyPart);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyPart-bodyPart"
                name="bodyPart" type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariableInput"
              name="addLoopVariableInput"
              class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariableInput-_ownedComment.0">
                <body>super.addStructuredNodeInput(loopVariableInput);&#xD;
                  this.loopVariableInput.addValue(loopVariableInput);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariableInput-loopVariableInput"
                name="loopVariableInput" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariable"
              name="addLoopVariable" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariable-_ownedComment.0">
                <body>this.loopVariable.addValue(loopVariable);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addLoopVariable-loopVariable"
                name="loopVariable" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setDecider"
              name="setDecider" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setDecider-_ownedComment.0">
                <body>this.decider = decider;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-setDecider-decider"
                name="decider" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyOutput"
              name="addBodyOutput" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyOutput-_ownedComment.0">
                <body>this.bodyOutput.addValue(bodyOutput);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addBodyOutput-bodyOutput"
                name="bodyOutput" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addResult"
              name="addResult" class="Syntax-Activities-CompleteStructuredActivities-LoopNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result.addValue(result);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-LoopNode-addResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
            name="ExecutableNode" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ExecutableNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ActivityNode"
              specific="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause" name="Clause">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-_generalization.0"
              general="Syntax-Classes-Kernel-Element"
              specific="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-test" name="test"
              type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_test">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-test-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-test">
                <body>A nested activity fragment with a designated output pin that specifies the
                  result of the test.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-test-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-test-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-body" name="body"
              type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_body">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-body-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-body">
                <body>A nested activity fragment that is executed if the test evaluates to true and
                  the clause is chosen over any concurrent clauses that also evaluate to
                true.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-body-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-body-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause"
              name="predecessorClause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              association="Syntax-Activities-CompleteStructuredActivities-A_predecessorClause_successorClause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause">
                <body>A set of clauses whose tests must all evaluate false before the current clause
                  can be tested.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-successorClause"
              name="successorClause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              association="Syntax-Activities-CompleteStructuredActivities-A_predecessorClause_successorClause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-successorClause-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-successorClause">
                <body>A set of clauses which may not be tested unless the current clause tests
                  false.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-successorClause-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-successorClause-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-decider" name="decider"
              type="Syntax-Actions-BasicActions-OutputPin"
              association="Syntax-Activities-CompleteStructuredActivities-A_decider_clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-decider-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-decider">
                <body>An output pin within the test fragment the value of which is examined after
                  execution of the test to determine whether the body should be executed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-decider-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-decider-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput"
              name="bodyOutput" type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true"
              association="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput">
                <body>A list of output pins within the body fragment whose values are moved to the
                  result pins of the containing conditional node after execution of the clause
                body.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addPredecessorClause"
              name="addPredecessorClause"
              class="Syntax-Activities-CompleteStructuredActivities-Clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addPredecessorClause-_ownedComment.0">
                <body>this.predecessorClause.addValue(predecessorClause);&#xD;
                  predecessorClause.successorClause.addValue(this);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addPredecessorClause-predecessorClause"
                name="predecessorClause"
                type="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addTest" name="addTest"
              class="Syntax-Activities-CompleteStructuredActivities-Clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addTest-_ownedComment.0">
                <body>this.test.addValue(test);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addTest-test"
                name="test" type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBody" name="addBody"
              class="Syntax-Activities-CompleteStructuredActivities-Clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBody-_ownedComment.0">
                <body>this.body.addValue(body);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBody-body"
                name="body" type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-setDecider"
              name="setDecider" class="Syntax-Activities-CompleteStructuredActivities-Clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-setDecider-_ownedComment.0">
                <body>this.decider = decider;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-setDecider-decider"
                name="decider" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBodyOutput"
              name="addBodyOutput" class="Syntax-Activities-CompleteStructuredActivities-Clause">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBodyOutput-_ownedComment.0">
                <body>this.bodyOutput.addValue(bodyOutput);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-Clause-addBodyOutput-bodyOutput"
                name="bodyOutput" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode"
            name="ConditionalNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-_generalization.0"
              general="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              specific="Syntax-Activities-CompleteStructuredActivities-ConditionalNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isDeterminate"
              name="isDeterminate">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isDeterminate-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isDeterminate">
                <body>If true, the modeler asserts that at most one test will succeed.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isDeterminate-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isAssured"
              name="isAssured">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isAssured-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isAssured">
                <body>If true, the modeler asserts that at least one test will succeed.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-isAssured-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause"
              name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              aggregation="composite"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause">
                <body>Set of clauses composing the conditional.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true"
              aggregation="composite"
              redefinedProperty="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput"
              association="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result-_ownedComment.0"
                annotatedElement="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result">
                <body>A list of output pins that constitute the data flow outputs of the
                  conditional.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsDeterminate"
              name="setIsDeterminate"
              class="Syntax-Activities-CompleteStructuredActivities-ConditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsDeterminate-_ownedComment.0">
                <body>this.isDeterminate = isDeterminate;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsDeterminate-isDeterminate"
                name="isDeterminate">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsAssured"
              name="setIsAssured"
              class="Syntax-Activities-CompleteStructuredActivities-ConditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsAssured-_ownedComment.0">
                <body>this.isAssured = isAssured;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-setIsAssured-isAssured"
                name="isAssured">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addClause"
              name="addClause"
              class="Syntax-Activities-CompleteStructuredActivities-ConditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addClause-_ownedComment.0">
                <body>super.addOwnedElement(clause);&#xD; this.clause.addValue(clause);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addClause-clause"
                name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addResult"
              name="addResult"
              class="Syntax-Activities-CompleteStructuredActivities-ConditionalNode">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addResult-_ownedComment.0">
                <body>super.addStructuredNodeOutput(result);&#xD;
                  this.result.addValue(result);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-addResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode"
            name="A_result_conditionalNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-result Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode-conditionalNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode-conditionalNode"
              name="conditionalNode"
              type="Syntax-Activities-CompleteStructuredActivities-ConditionalNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode-conditionalNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_conditionalNode-conditionalNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode"
            name="A_clause_conditionalNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-ConditionalNode-clause Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode-conditionalNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode-conditionalNode"
              name="conditionalNode"
              type="Syntax-Activities-CompleteStructuredActivities-ConditionalNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode-conditionalNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_conditionalNode-conditionalNode-_lowerValue"
                value="1"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_test"
            name="A_clause_test" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-A_clause_test-clause Syntax-Activities-CompleteStructuredActivities-Clause-test">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_test-clause"
              name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_clause_test"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_test">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_test-clause-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_test-clause-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_predecessorClause_successorClause"
            name="A_predecessorClause_successorClause" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-Clause-predecessorClause Syntax-Activities-CompleteStructuredActivities-Clause-successorClause"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause"
            name="A_bodyOutput_clause" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-Clause-bodyOutput Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause-clause">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause-clause"
              name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause"
              association="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause-clause-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_clause-clause-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_body"
            name="A_clause_body" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-A_clause_body-clause Syntax-Activities-CompleteStructuredActivities-Clause-body">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_body-clause"
              name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_clause_body"
              association="Syntax-Activities-CompleteStructuredActivities-A_clause_body">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_body-clause-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_clause_body-clause-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_clause"
            name="A_decider_clause" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-Clause-decider Syntax-Activities-CompleteStructuredActivities-A_decider_clause-clause">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_clause-clause"
              name="clause" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-Clause"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_decider_clause"
              association="Syntax-Activities-CompleteStructuredActivities-A_decider_clause">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_clause-clause-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_clause-clause-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode"
            name="A_test_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-test Syntax-Activities-CompleteStructuredActivities-A_test_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode-loopNode"
              name="loopNode" type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_test_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode"
            name="A_loopVariableInput_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariableInput Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode-loopNode"
              name="loopNode" type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariableInput_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode"
            name="A_bodyOutput_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyOutput Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode-loopNode"
              name="loopNode" type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode-loopNode-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_bodyOutput_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode"
            name="A_decider_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-decider Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode-loopNode"
              name="loopNode" type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_decider_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_node_inStructuredNode"
            name="A_node_inStructuredNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-node Syntax-Activities-IntermediateActivities-ActivityNode-inStructuredNode"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_edge_inStructuredNode"
            name="A_edge_inStructuredNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-edge Syntax-Activities-IntermediateActivities-ActivityEdge-inStructuredNode"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_activity_structuredNode"
            name="A_activity_structuredNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-activity Syntax-Activities-IntermediateActivities-Activity-structuredNode"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart"
            name="A_loopNode_bodyPart" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart-loopNode Syntax-Activities-CompleteStructuredActivities-LoopNode-bodyPart">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart-loopNode"
              name="loopNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_bodyPart-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode"
            name="A_result_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-result Syntax-Activities-CompleteStructuredActivities-A_result_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode-loopNode"
              name="loopNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_result_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode"
            name="A_loopVariable_loopNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-LoopNode-loopVariable Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode-loopNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode-loopNode"
              name="loopNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopVariable_loopNode-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart"
            name="A_loopNode_setupPart" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart-loopNode Syntax-Activities-CompleteStructuredActivities-LoopNode-setupPart">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart-loopNode"
              name="loopNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-LoopNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart"
              association="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart-loopNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_loopNode_setupPart-loopNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode"
            name="A_structuredNodeOutput_structuredActivityNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeOutput Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode-structuredActivityNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode-structuredActivityNode"
              name="structuredActivityNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode-structuredActivityNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeOutput_structuredActivityNode-structuredActivityNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode"
            name="A_structuredNodeInput_structuredActivityNode" visibility="private"
            memberEnd="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode-structuredNodeInput Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode-structuredActivityNode">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode-structuredActivityNode"
              name="structuredActivityNode" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              owningAssociation="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode"
              association="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode-structuredActivityNode-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-CompleteStructuredActivities-A_structuredNodeInput_structuredActivityNode-structuredActivityNode-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Activities-ExtraStructuredActivities"
          name="ExtraStructuredActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-_packageImport.0"
            importedPackage="Syntax-Activities-CompleteStructuredActivities"
            importingNamespace="Syntax-Activities-ExtraStructuredActivities"> </packageImport>
          <packagedElement xmi:type="uml:Enumeration"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind" name="ExpansionKind">
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-parallel"
              name="parallel"
              enumeration="Syntax-Activities-ExtraStructuredActivities-ExpansionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-parallel-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-parallel">
                <body>The executions are independent. They may be executed concurrently.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-iterative"
              name="iterative"
              enumeration="Syntax-Activities-ExtraStructuredActivities-ExpansionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-iterative-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-iterative">
                <body>The executions are dependent and must be executed one at a time, in order of
                  the collection elements.</body>
              </ownedComment>
            </ownedLiteral>
            <ownedLiteral xmi:type="uml:EnumerationLiteral"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-stream"
              name="stream" enumeration="Syntax-Activities-ExtraStructuredActivities-ExpansionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-stream-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-stream">
                <body>A stream of collection elements flows into a single execution, in order of the
                  collection elements.</body>
              </ownedComment>
            </ownedLiteral>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode" name="ExpansionNode">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ObjectNode"
              specific="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput"
              name="regionAsOutput"
              type="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
              association="Syntax-Activities-ExtraStructuredActivities-A_outputElement_regionAsOutput">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput">
                <body>The expansion region for which the node is an output.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput"
              name="regionAsInput"
              type="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
              association="Syntax-Activities-ExtraStructuredActivities-A_inputElement_regionAsInput">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput">
                <body>The expansion region for which the node is an input.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput-_lowerValue"
              />
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
            name="ExpansionRegion">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_crossing_edges"
              name="fUML_no_crossing_edges"
              constrainedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
              context="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_crossing_edges-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_crossing_edges">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;Edges may not cross into or out of an expansion
                  region.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_crossing_edges-_specification">
                <language>OCL</language>
                <body>self.edge-&gt;forAll(self.node-&gt;includes(source) and
                  self.node-&gt;includes(target))</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_mode_cannot_be_stream"
              name="fUML_mode_cannot_be_stream"
              constrainedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
              context="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_mode_cannot_be_stream-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_mode_cannot_be_stream">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;mode cannot be
                  stream&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_mode_cannot_be_stream-_specification">
                <language>OCL</language>
                <body>self.mode != ExpansionKind::stream</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_output_pins"
              name="fUML_no_output_pins"
              constrainedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"
              context="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_output_pins-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_output_pins">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;An expansion region may not have output
                  pins.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-fUML_no_output_pins-_specification">
                <language>OCL</language>
                <body>self.output-&gt;isEmpty()</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-_generalization.0"
              general="Syntax-Activities-CompleteStructuredActivities-StructuredActivityNode"
              specific="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-mode" name="mode"
              visibility="public" type="Syntax-Activities-ExtraStructuredActivities-ExpansionKind">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-mode-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-mode">
                <body>The way in which the executions interact: parallel: all interactions are
                  independent iterative: the interactions occur in order of the elements stream: a
                  stream of values flows into a single execution </body>
              </ownedComment>
              <defaultValue xmi:type="uml:InstanceValue"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-mode-iterative"
                name="iterative" type="Syntax-Activities-ExtraStructuredActivities-ExpansionKind"
                instance="Syntax-Activities-ExtraStructuredActivities-ExpansionKind-iterative"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement"
              name="outputElement" type="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"
              association="Syntax-Activities-ExtraStructuredActivities-A_outputElement_regionAsOutput">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement">
                <body>An object node that accepts a separate element of the output collection during
                  each of the multiple executions of the region. The values are formed into a
                  collection that is available when the execution of the region is complete.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement"
              name="inputElement" type="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"
              association="Syntax-Activities-ExtraStructuredActivities-A_inputElement_regionAsInput">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement-_ownedComment.0"
                annotatedElement="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement">
                <body>An object node that holds a separate element of the input collection during
                  each of the multiple executions of the region.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-setMode"
              name="setMode" class="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-setMode-_ownedComment.0">
                <body>this.mode = mode;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-setMode-mode"
                name="mode" type="Syntax-Activities-ExtraStructuredActivities-ExpansionKind"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addInputElement"
              name="addInputElement"
              class="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addInputElement-_ownedComment.0">
                <body>this.inputElement.addValue(inputElement);&#xD; inputElement.regionAsInput
                  = this;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addInputElement-inputElement"
                name="inputElement" type="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addOutputElement"
              name="addOutputElement"
              class="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addOutputElement-_ownedComment.0">
                <body>this.outputElement.addValue(outputElement);&#xD;
                  outputElement.regionAsOutput = this;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-addOutputElement-outputElement"
                name="outputElement"
                type="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-A_outputElement_regionAsOutput"
            name="A_outputElement_regionAsOutput" visibility="private"
            memberEnd="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-outputElement Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsOutput"> </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Activities-ExtraStructuredActivities-A_inputElement_regionAsInput"
            name="A_inputElement_regionAsInput" visibility="private"
            memberEnd="Syntax-Activities-ExtraStructuredActivities-ExpansionRegion-inputElement Syntax-Activities-ExtraStructuredActivities-ExpansionNode-regionAsInput"
          > </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Actions" name="Actions">
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Actions-BasicActions"
          name="BasicActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Actions-BasicActions-_packageImport.0"
            importedPackage="Syntax-CommonBehaviors-Communications"
            importingNamespace="Syntax-Actions-BasicActions"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Actions-BasicActions-_packageImport.1"
            importedPackage="Syntax-Activities-IntermediateActivities"
            importingNamespace="Syntax-Actions-BasicActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-BasicActions-SendSignalAction" name="SendSignalAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target_signal_reception"
              name="target_signal_reception"
              constrainedElement="Syntax-Actions-BasicActions-SendSignalAction"
              context="Syntax-Actions-BasicActions-SendSignalAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target_signal_reception-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-SendSignalAction-target_signal_reception">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;The target input pin must have a type that has a reception for
                  the signal.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target_signal_reception-_specification">
                <language>OCL</language>
                <body>self.target.type.oclAsType(Classifier).allFeatures()-&gt;select(oclIsKindOf(Reception))-&gt;exists(f:Feature|self.signal.conformsTo(f.oclAsType(Reception).signal))&#xD;
                </body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-_generalization.0"
              general="Syntax-Actions-BasicActions-InvocationAction"
              specific="Syntax-Actions-BasicActions-SendSignalAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target" name="target"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-BasicActions-A_target_sendSignalAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-SendSignalAction-target">
                <body>The target object to which the signal is sent.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-target-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-signal" name="signal"
              type="Syntax-CommonBehaviors-Communications-Signal"
              association="Syntax-Actions-BasicActions-A_signal_sendSignalAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-signal-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-SendSignalAction-signal">
                <body>The type of signal transmitted to the target object.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-signal-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-signal-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setTarget" name="setTarget"
              class="Syntax-Actions-BasicActions-SendSignalAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setTarget-_ownedComment.0">
                <body>super.addInput(target);&#xD; this.target = target;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setTarget-target" name="target"
                type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setSignal" name="setSignal"
              class="Syntax-Actions-BasicActions-SendSignalAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setSignal-_ownedComment.0">
                <body>this.signal = signal;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-SendSignalAction-setSignal-signal" name="signal"
                type="Syntax-CommonBehaviors-Communications-Signal"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-BasicActions-OutputPin"
            name="OutputPin">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-OutputPin-_generalization.0"
              general="Syntax-Actions-BasicActions-Pin"
              specific="Syntax-Actions-BasicActions-OutputPin"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-BasicActions-Pin" name="Pin"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-Pin-_generalization.0"
              general="Syntax-Activities-IntermediateActivities-ObjectNode"
              specific="Syntax-Actions-BasicActions-Pin"/>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-Pin-_generalization.1"
              general="Syntax-Classes-Kernel-MultiplicityElement"
              specific="Syntax-Actions-BasicActions-Pin"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setIsOrdered" name="setIsOrdered"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setIsOrdered-_ownedComment.0">
                <body>this.multiplicityElement.setIsOrdered(isOrdered);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setIsOrdered-isOrdered" name="isOrdered">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setIsUnique" name="setIsUnique"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setIsUnique-_ownedComment.0">
                <body>this.multiplicityElement.setIsUnique(isUnique);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setIsUnique-isUnique" name="isUnique">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setUpperValue" name="setUpperValue"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setUpperValue-_ownedComment.0">
                <body>this.multiplicityElement.setUpperValue(upperValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setUpperValue-upperValue" name="upperValue"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setLowerValue" name="setLowerValue"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setLowerValue-_ownedComment.0">
                <body>this.multiplicityElement.setLowerValue(lowerValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setLowerValue-lowerValue" name="lowerValue"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setUpper" name="setUpper"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setUpper-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setUpperValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setUpper(upper);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setUpper-upper" name="upper">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Pin-setLower" name="setLower"
              class="Syntax-Actions-BasicActions-Pin">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Pin-setLower-_ownedComment.0">
                <body>//Note: This is a convenience operation that may be used _instead_ of
                  setLowerValue, not in addition to it.&#xD; &#xD;
                  this.multiplicityElement.setLower(lower);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Pin-setLower-lower" name="lower">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-BasicActions-InputPin"
            name="InputPin">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-InputPin-_generalization.0"
              general="Syntax-Actions-BasicActions-Pin"
              specific="Syntax-Actions-BasicActions-InputPin"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-BasicActions-InvocationAction" name="InvocationAction"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-InvocationAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-BasicActions-InvocationAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-InvocationAction-argument" name="argument"
              visibility="public" type="Syntax-Actions-BasicActions-InputPin" isOrdered="true"
              aggregation="composite" subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-BasicActions-A_argument_invocationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-InvocationAction-argument-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-InvocationAction-argument-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-InvocationAction-addArgument" name="addArgument"
              class="Syntax-Actions-BasicActions-InvocationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-InvocationAction-addArgument-_ownedComment.0">
                <body>super.addInput(argument);&#xD; this.argument.addValue(argument);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-InvocationAction-addArgument-argument"
                name="argument" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-BasicActions-CallAction"
            name="CallAction" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-CallAction-_generalization.0"
              general="Syntax-Actions-BasicActions-InvocationAction"
              specific="Syntax-Actions-BasicActions-CallAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-CallAction-isSynchronous" name="isSynchronous">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallAction-isSynchronous-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallAction-isSynchronous">
                <body>If true, the call is synchronous and the caller waits for completion of the
                  invoked behavior. If false, the call is asynchronous and the caller proceeds
                  immediately and does not expect a return values. </body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-BasicActions-CallAction-isSynchronous-_defaultValue"
                value="true">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-CallAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-BasicActions-A_result_callAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallAction-result">
                <body>A list of output pins where the results of performing the invocation are
                  placed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-CallAction-result-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-CallAction-result-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-CallAction-addResult" name="addResult"
              class="Syntax-Actions-BasicActions-CallAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallAction-addResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result.addValue(result);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-CallAction-addResult-result" name="result"
                type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction" name="CallBehaviorAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-is_synchronous"
              name="is_synchronous"
              constrainedElement="Syntax-Actions-BasicActions-CallBehaviorAction"
              context="Syntax-Actions-BasicActions-CallBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-is_synchronous-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallBehaviorAction-is_synchronous">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isSynchronous must be
                  true&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-is_synchronous-_specification">
                <language>OCL</language>
                <body>self.isSynchronous</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-inactive_behavior"
              name="inactive_behavior"
              constrainedElement="Syntax-Actions-BasicActions-CallBehaviorAction"
              context="Syntax-Actions-BasicActions-CallBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-inactive_behavior-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallBehaviorAction-inactive_behavior">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;The behavior may not be active.
                  &lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-inactive_behavior-_specification">
                <language>OCL</language>
                <body>not self.behavior.isActive</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-proper_context"
              name="proper_context"
              constrainedElement="Syntax-Actions-BasicActions-CallBehaviorAction"
              context="Syntax-Actions-BasicActions-CallBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-proper_context-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallBehaviorAction-proper_context">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;If the behavior has a context, it must be the same as the
                  context of the enclosing activity or a (direct or indirect) superclass of
                  it.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-proper_context-_specification">
                <language>OCL</language>
                <body>self.behavior.context-&gt;notEmpty() implies&#xD;
                  union(self.context.allParents())-&gt;includes(self.behavior.context)&#xD;
                </body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-_generalization.0"
              general="Syntax-Actions-BasicActions-CallAction"
              specific="Syntax-Actions-BasicActions-CallBehaviorAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-behavior" name="behavior"
              type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              association="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-behavior-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallBehaviorAction-behavior">
                <body>The invoked behavior. It must be capable of accepting and returning
                control.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-behavior-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-behavior-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-setBehavior" name="setBehavior"
              class="Syntax-Actions-BasicActions-CallBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-setBehavior-_ownedComment.0">
                <body>this.behavior = behavior;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-CallBehaviorAction-setBehavior-behavior"
                name="behavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-BasicActions-CallOperationAction" name="CallOperationAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-is_synchronous"
              name="is_synchronous"
              constrainedElement="Syntax-Actions-BasicActions-CallOperationAction"
              context="Syntax-Actions-BasicActions-CallOperationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-is_synchronous-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallOperationAction-is_synchronous">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isSynchronous must be
                  true&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-is_synchronous-_specification">
                <language>OCL</language>
                <body>self.isSynchronous</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-_generalization.0"
              general="Syntax-Actions-BasicActions-CallAction"
              specific="Syntax-Actions-BasicActions-CallOperationAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-operation" name="operation"
              type="Syntax-Classes-Kernel-Operation"
              association="Syntax-Actions-BasicActions-A_operation_callOperationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-operation-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallOperationAction-operation">
                <body>The operation to be invoked by the action execution.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-operation-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-operation-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-target" name="target"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-BasicActions-A_target_callOperationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-target-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-CallOperationAction-target">
                <body>The target object to which the request is sent. The classifier of the target
                  object is used to dynamically determine a behavior to invoke. This object
                  constitutes the context of the execution of the operation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-target-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-target-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setTarget" name="setTarget"
              class="Syntax-Actions-BasicActions-CallOperationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setTarget-_ownedComment.0">
                <body>super.addInput(target);&#xD; this.target = target;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setTarget-target"
                name="target" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setOperation"
              name="setOperation" class="Syntax-Actions-BasicActions-CallOperationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setOperation-_ownedComment.0">
                <body>this.operation = operation;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-CallOperationAction-setOperation-operation"
                name="operation" type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-BasicActions-Action"
            name="Action" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-BasicActions-Action-_generalization.0"
              general="Syntax-Activities-CompleteStructuredActivities-ExecutableNode"
              specific="Syntax-Actions-BasicActions-Action"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-Action-output" name="output"
              type="Syntax-Actions-BasicActions-OutputPin" isOrdered="true" isReadOnly="true"
              isDerived="true" isDerivedUnion="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Actions-BasicActions-A_action_output">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Action-output-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-Action-output">
                <body>The ordered set of output pins connected to the Action. The action places its
                  results onto pins in this set.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-Action-output-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-Action-output-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-Action-context" name="context"
              type="Syntax-Classes-Kernel-Classifier" isReadOnly="true" isDerived="true"
              association="Syntax-Actions-BasicActions-A_context_action">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Action-context-_ownedComment.0"
                annotatedElement="Syntax-Actions-BasicActions-Action-context">
                <body>The classifier that owns the behavior of which this action is a part.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-Action-context-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-Action-context-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-Action-input" name="input" visibility="public"
              type="Syntax-Actions-BasicActions-InputPin" isOrdered="true" isReadOnly="true"
              isDerived="true" isDerivedUnion="true" aggregation="composite"
              subsettedProperty="Syntax-Classes-Kernel-Element-ownedElement"
              association="Syntax-Actions-BasicActions-A_action_input">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-Action-input-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-Action-input-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-Action-isLocallyReentrant"
              name="isLocallyReentrant" visibility="public">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-BasicActions-Action-isLocallyReentrant-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Action-addInput" name="addInput"
              visibility="protected" class="Syntax-Actions-BasicActions-Action">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Action-addInput-_ownedComment.0">
                <body>super.addOwnedElement(input);&#xD; this.input.addValue(input);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Action-addInput-input" name="input"
                type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Action-addOutput" name="addOutput"
              visibility="protected" class="Syntax-Actions-BasicActions-Action">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Action-addOutput-_ownedComment.0">
                <body>super.addOwnedElement(output);&#xD; this.output.addValue(output);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Action-addOutput-output" name="output"
                type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-BasicActions-Action-setIsLocallyReentrant"
              name="setIsLocallyReentrant" class="Syntax-Actions-BasicActions-Action">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-BasicActions-Action-setIsLocallyReentrant-_ownedComment.0">
                <body>this.isLocallyReentrant = isLocallyReentrant;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-BasicActions-Action-setIsLocallyReentrant-isLocallyReentrant"
                name="isLocallyReentrant">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_action_output" name="A_action_output"
            visibility="private"
            memberEnd="Syntax-Actions-BasicActions-A_action_output-action Syntax-Actions-BasicActions-Action-output">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_action_output-action" name="action"
              type="Syntax-Actions-BasicActions-Action"
              owningAssociation="Syntax-Actions-BasicActions-A_action_output"
              association="Syntax-Actions-BasicActions-A_action_output">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_action_output-action-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_action_output-action-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_context_action" name="A_context_action"
            visibility="private"
            memberEnd="Syntax-Actions-BasicActions-Action-context Syntax-Actions-BasicActions-A_context_action-action"
            isDerived="true">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_context_action-action" name="action"
              type="Syntax-Actions-BasicActions-Action"
              owningAssociation="Syntax-Actions-BasicActions-A_context_action"
              association="Syntax-Actions-BasicActions-A_context_action"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_operation_callOperationAction"
            name="A_operation_callOperationAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-CallOperationAction-operation Syntax-Actions-BasicActions-A_operation_callOperationAction-callOperationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_operation_callOperationAction-callOperationAction"
              name="callOperationAction" type="Syntax-Actions-BasicActions-CallOperationAction"
              owningAssociation="Syntax-Actions-BasicActions-A_operation_callOperationAction"
              association="Syntax-Actions-BasicActions-A_operation_callOperationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_operation_callOperationAction-callOperationAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_operation_callOperationAction-callOperationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_target_callOperationAction"
            name="A_target_callOperationAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-CallOperationAction-target Syntax-Actions-BasicActions-A_target_callOperationAction-callOperationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_target_callOperationAction-callOperationAction"
              name="callOperationAction" type="Syntax-Actions-BasicActions-CallOperationAction"
              owningAssociation="Syntax-Actions-BasicActions-A_target_callOperationAction"
              association="Syntax-Actions-BasicActions-A_target_callOperationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_target_callOperationAction-callOperationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_target_callOperationAction-callOperationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction"
            name="A_behavior_callBehaviorAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-CallBehaviorAction-behavior Syntax-Actions-BasicActions-A_behavior_callBehaviorAction-callBehaviorAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction-callBehaviorAction"
              name="callBehaviorAction" type="Syntax-Actions-BasicActions-CallBehaviorAction"
              owningAssociation="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction"
              association="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction-callBehaviorAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_behavior_callBehaviorAction-callBehaviorAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_result_callAction" name="A_result_callAction"
            visibility="private"
            memberEnd="Syntax-Actions-BasicActions-CallAction-result Syntax-Actions-BasicActions-A_result_callAction-callAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_result_callAction-callAction" name="callAction"
              type="Syntax-Actions-BasicActions-CallAction"
              owningAssociation="Syntax-Actions-BasicActions-A_result_callAction"
              association="Syntax-Actions-BasicActions-A_result_callAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_result_callAction-callAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_result_callAction-callAction-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_signal_sendSignalAction"
            name="A_signal_sendSignalAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-SendSignalAction-signal Syntax-Actions-BasicActions-A_signal_sendSignalAction-sendSignalAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_signal_sendSignalAction-sendSignalAction"
              name="sendSignalAction" type="Syntax-Actions-BasicActions-SendSignalAction"
              owningAssociation="Syntax-Actions-BasicActions-A_signal_sendSignalAction"
              association="Syntax-Actions-BasicActions-A_signal_sendSignalAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_signal_sendSignalAction-sendSignalAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_signal_sendSignalAction-sendSignalAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_target_sendSignalAction"
            name="A_target_sendSignalAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-SendSignalAction-target Syntax-Actions-BasicActions-A_target_sendSignalAction-sendSignalAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_target_sendSignalAction-sendSignalAction"
              name="sendSignalAction" type="Syntax-Actions-BasicActions-SendSignalAction"
              owningAssociation="Syntax-Actions-BasicActions-A_target_sendSignalAction"
              association="Syntax-Actions-BasicActions-A_target_sendSignalAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_target_sendSignalAction-sendSignalAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_target_sendSignalAction-sendSignalAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_action_input" name="A_action_input"
            visibility="private"
            memberEnd="Syntax-Actions-BasicActions-A_action_input-action Syntax-Actions-BasicActions-Action-input">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_action_input-action" name="action"
              visibility="public" type="Syntax-Actions-BasicActions-Action"
              owningAssociation="Syntax-Actions-BasicActions-A_action_input"
              association="Syntax-Actions-BasicActions-A_action_input">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_action_input-action-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_action_input-action-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-BasicActions-A_argument_invocationAction"
            name="A_argument_invocationAction" visibility="private"
            memberEnd="Syntax-Actions-BasicActions-InvocationAction-argument Syntax-Actions-BasicActions-A_argument_invocationAction-invocationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-BasicActions-A_argument_invocationAction-invocationAction"
              name="invocationAction" visibility="public"
              type="Syntax-Actions-BasicActions-InvocationAction"
              owningAssociation="Syntax-Actions-BasicActions-A_argument_invocationAction"
              association="Syntax-Actions-BasicActions-A_argument_invocationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-BasicActions-A_argument_invocationAction-invocationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-BasicActions-A_argument_invocationAction-invocationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Actions-IntermediateActions"
          name="IntermediateActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Actions-IntermediateActions-_packageImport.0"
            importedPackage="Syntax-Actions-BasicActions"
            importingNamespace="Syntax-Actions-IntermediateActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
            name="StructuralFeatureAction" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-_ownedComment.0"
              annotatedElement="Syntax-Actions-IntermediateActions-StructuralFeatureAction">
              <body>This abstract action class statically specifies the structural feature being
                accessed. The object to access is specified dynamically, by referring to an input
                pin on which the object will be placed at runtime. The type of the value of this pin
                is the classifier that owns the specified structural feature, and the value's
                multiplicity is 1..1.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-StructuralFeatureAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature"
              name="structuralFeature" type="Syntax-Classes-Kernel-StructuralFeature"
              association="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature">
                <body>Structural feature to be read.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object"
              name="object" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object">
                <body>Gives the input pin from which the object whose structural feature is to be
                  read or written is obtained. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setStructuralFeature"
              name="setStructuralFeature"
              class="Syntax-Actions-IntermediateActions-StructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setStructuralFeature-_ownedComment.0">
                <body>this.structuralFeature = structuralFeature;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setStructuralFeature-structuralFeature"
                name="structuralFeature" type="Syntax-Classes-Kernel-StructuralFeature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setObject"
              name="setObject" class="Syntax-Actions-IntermediateActions-StructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-StructuralFeatureAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction" name="TestIdentityAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-TestIdentityAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-second" name="second"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_second_testIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-second-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-TestIdentityAction-second">
                <body>Gives the pin on which an object is placed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-second-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-second-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_testIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-TestIdentityAction-result">
                <body>Tells whether the two input objects are identical.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-first" name="first"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_first_testIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-first-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-TestIdentityAction-first">
                <body>Gives the pin on which an object is placed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-first-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-first-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setFirst"
              name="setFirst" class="Syntax-Actions-IntermediateActions-TestIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setFirst-_ownedComment.0">
                <body>super.addInput(first);&#xD; this.first = first;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setFirst-first"
                name="first" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setSecond"
              name="setSecond" class="Syntax-Actions-IntermediateActions-TestIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setSecond-_ownedComment.0">
                <body>super.addInput(second);&#xD; this.second = second;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setSecond-second"
                name="second" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setResult"
              name="setResult" class="Syntax-Actions-IntermediateActions-TestIdentityAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-TestIdentityAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction"
            name="ValueSpecificationAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-ValueSpecificationAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value"
              name="value" type="Syntax-Classes-Kernel-ValueSpecification" aggregation="composite"
              association="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value">
                <body>Value specification to be evaluated.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result">
                <body>Gives the output pin on which the result is put.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setValue"
              name="setValue" class="Syntax-Actions-IntermediateActions-ValueSpecificationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setValue-_ownedComment.0">
                <body>this.value = value;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setValue-value"
                name="value" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setResult"
              name="setResult" class="Syntax-Actions-IntermediateActions-ValueSpecificationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ValueSpecificationAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-WriteLinkAction" name="WriteLinkAction"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-WriteLinkAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-LinkAction"
              specific="Syntax-Actions-IntermediateActions-WriteLinkAction"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"
            name="WriteStructuralFeatureAction" isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
              specific="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value"
              name="value" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value">
                <body>Value to be added or removed from the structural feature.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-result-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setResult"
              name="setResult"
              class="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setValue"
              name="setValue"
              class="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setValue-_ownedComment.0">
                <body>super.addInput(value);&#xD; this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-setValue-value"
                name="value" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction"
            name="RemoveStructuralFeatureValueAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"
              specific="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-isRemoveDuplicates"
              name="isRemoveDuplicates">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-isRemoveDuplicates-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-isRemoveDuplicates">
                <body>Specifies whether to remove duplicates of the value in nonunique structural
                  features.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-isRemoveDuplicates-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt"
              name="removeAt" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt">
                <body>Specifies the position of an existing value to remove in ordered nonunique
                  structural features. The type of the pin is UnlimitedNatural, but the value cannot
                  be zero or unlimited.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setIsRemoveDuplicates"
              name="setIsRemoveDuplicates"
              class="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setIsRemoveDuplicates-_ownedComment.0">
                <body>this.isRemoveDuplicates = isRemoveDuplicates;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setIsRemoveDuplicates-isRemoveDuplicates"
                name="isRemoveDuplicates">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setRemoveAt"
              name="setRemoveAt"
              class="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setRemoveAt-_ownedComment.0">
                <body>if (removeAt != null) {&#xD; super.addInput(removeAt);&#xD; }&#xD;
                  &#xD; this.removeAt = removeAt;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-setRemoveAt-removeAt"
                name="removeAt" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction" name="ReadLinkAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-LinkAction"
              specific="Syntax-Actions-IntermediateActions-ReadLinkAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_readLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ReadLinkAction-result">
                <body>The pin on which are put the objects participating in the association at the
                  end not specified by the inputs. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-setResult" name="setResult"
              class="Syntax-Actions-IntermediateActions-ReadLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ReadLinkAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction" name="ReadSelfAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-ReadSelfAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_readSelfAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ReadSelfAction-result">
                <body>Gives the output pin on which the hosting object is placed. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-setResult" name="setResult"
              class="Syntax-Actions-IntermediateActions-ReadSelfAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ReadSelfAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction"
            name="ReadStructuralFeatureAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
              specific="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result">
                <body>Gives the output pin on which the result is put.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-setResult"
              name="setResult"
              class="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-LinkAction" name="LinkAction"
            isAbstract="true">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-LinkAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-LinkAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkAction-endData" name="endData"
              type="Syntax-Actions-IntermediateActions-LinkEndData" aggregation="composite"
              redefinedProperty="Syntax-Actions-IntermediateActions-LinkAction-endData"
              association="Syntax-Actions-IntermediateActions-A_endData_linkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-endData-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkAction-endData">
                <body>Data identifying one end of a link by the objects on its ends and
                qualifiers.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-endData-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-endData-_lowerValue" value="2"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkAction-inputValue" name="inputValue"
              visibility="public" type="Syntax-Actions-BasicActions-InputPin"
              aggregation="composite" subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_inputValue_linkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-inputValue-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-inputValue-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addEndData" name="addEndData"
              class="Syntax-Actions-IntermediateActions-LinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addEndData-_ownedComment.0">
                <body>this.endData.addValue(endData);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addEndData-endData"
                name="endData" type="Syntax-Actions-IntermediateActions-LinkEndData"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addInputValue"
              name="addInputValue" class="Syntax-Actions-IntermediateActions-LinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addInputValue-_ownedComment.0">
                <body>super.addInput(inputValue);&#xD;
                  this.inputValue.addValue(inputValue);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkAction-addInputValue-inputValue"
                name="inputValue" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData"
            name="LinkEndCreationData">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-_generalization.0"
              general="Syntax-Actions-IntermediateActions-LinkEndData"
              specific="Syntax-Actions-IntermediateActions-LinkEndCreationData"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-isReplaceAll"
              name="isReplaceAll">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-isReplaceAll-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndCreationData-isReplaceAll">
                <body>Specifies whether the existing links emanating from the object on this end
                  should be destroyed before creating a new link.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-isReplaceAll-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt"
              name="insertAt" type="Syntax-Actions-BasicActions-InputPin"
              association="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt">
                <body>Specifies where the new link should be inserted for ordered association ends,
                  or where an existing link should be moved to. The type of the input is
                  UnlimitedNatural, but the input cannot be zero. This pin is omitted for
                  association ends that are not ordered.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setIsReplaceAll"
              name="setIsReplaceAll" class="Syntax-Actions-IntermediateActions-LinkEndCreationData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setIsReplaceAll-_ownedComment.0">
                <body>this.isReplaceAll = isReplaceAll;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setIsReplaceAll-isReplaceAll"
                name="isReplaceAll">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setInsertAt"
              name="setInsertAt" class="Syntax-Actions-IntermediateActions-LinkEndCreationData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setInsertAt-_ownedComment.0">
                <body>this.insertAt = insertAt;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndCreationData-setInsertAt-insertAt"
                name="insertAt" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-LinkEndData" name="LinkEndData">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-_generalization.0"
              general="Syntax-Classes-Kernel-Element"
              specific="Syntax-Actions-IntermediateActions-LinkEndData"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-value" name="value"
              type="Syntax-Actions-BasicActions-InputPin"
              association="Syntax-Actions-IntermediateActions-A_value_linkEndData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-value-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndData-value">
                <body>Input pin that provides the specified object for the given end. This pin is
                  omitted if the link-end data specifies an 'open' end for reading.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-value-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-value-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-end" name="end"
              type="Syntax-Classes-Kernel-Property"
              association="Syntax-Actions-IntermediateActions-A_end_linkEndData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-end-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndData-end">
                <body>Association end for which this link-end data specifies values.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-end-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-end-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setEnd" name="setEnd"
              class="Syntax-Actions-IntermediateActions-LinkEndData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setEnd-_ownedComment.0">
                <body>this.end = end;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setEnd-end" name="end"
                type="Syntax-Classes-Kernel-Property"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setValue" name="setValue"
              class="Syntax-Actions-IntermediateActions-LinkEndData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setValue-_ownedComment.0">
                <body>this.value = value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndData-setValue-value" name="value"
                type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData"
            name="LinkEndDestructionData">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-_generalization.0"
              general="Syntax-Actions-IntermediateActions-LinkEndData"
              specific="Syntax-Actions-IntermediateActions-LinkEndDestructionData"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-isDestroyDuplicates"
              name="isDestroyDuplicates">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-isDestroyDuplicates-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndDestructionData-isDestroyDuplicates">
                <body>Specifies whether to destroy duplicates of the value in nonunique association
                  ends.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-isDestroyDuplicates-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt"
              name="destroyAt" type="Syntax-Actions-BasicActions-InputPin"
              association="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt">
                <body>Specifies the position of an existing link to be destroyed in ordered
                  nonunique association ends. The type of the pin is UnlimitedNatural, but the value
                  cannot be zero or unlimited.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setIsDestroyDuplicates"
              name="setIsDestroyDuplicates"
              class="Syntax-Actions-IntermediateActions-LinkEndDestructionData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setIsDestroyDuplicates-_ownedComment.0">
                <body>this.isDestroyDuplicates = isDestroyDuplicates;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setIsDestroyDuplicates-isDestroyDuplicates"
                name="isDestroyDuplicates">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setDestroyAt"
              name="setDestroyAt" class="Syntax-Actions-IntermediateActions-LinkEndDestructionData">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setDestroyAt-_ownedComment.0">
                <body>this.destroyAt = destroyAt;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-LinkEndDestructionData-setDestroyAt-destroyAt"
                name="destroyAt" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction"
            name="ClearAssociationAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-ClearAssociationAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-association"
              name="association" type="Syntax-Classes-Kernel-Association"
              association="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-association-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ClearAssociationAction-association">
                <body>Association to be cleared.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-association-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-association-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-object"
              name="object" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-object-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-ClearAssociationAction-object">
                <body>Gives the input pin from which is obtained the object whose participation in
                  the association is to be cleared.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setAssociation"
              name="setAssociation"
              class="Syntax-Actions-IntermediateActions-ClearAssociationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setAssociation-_ownedComment.0">
                <body>this.association = association;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setAssociation-association"
                name="association" type="Syntax-Classes-Kernel-Association"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setObject"
              name="setObject" class="Syntax-Actions-IntermediateActions-ClearAssociationAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ClearAssociationAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction"
            name="ClearStructuralFeatureAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
              specific="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-result-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-setResult"
              name="setResult"
              class="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction" name="CreateLinkAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-WriteLinkAction"
              specific="Syntax-Actions-IntermediateActions-CreateLinkAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-endData" name="endData"
              type="Syntax-Actions-IntermediateActions-LinkEndCreationData" aggregation="composite"
              redefinedProperty="Syntax-Actions-IntermediateActions-LinkAction-endData"
              association="Syntax-Actions-IntermediateActions-A_endData_createLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-endData-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-CreateLinkAction-endData">
                <body>Specifies ends of association and inputs.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-endData-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-endData-_lowerValue"
                value="2"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-addEndData"
              name="addEndData" class="Syntax-Actions-IntermediateActions-CreateLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-addEndData-_ownedComment.0">
                <body>super.addEndData(endData);&#xD; this.endData.addValue(endData);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-CreateLinkAction-addEndData-endData"
                name="endData" type="Syntax-Actions-IntermediateActions-LinkEndCreationData"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction" name="CreateObjectAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-fUML_is_class"
              name="fUML_is_class"
              constrainedElement="Syntax-Actions-IntermediateActions-CreateObjectAction"
              context="Syntax-Actions-IntermediateActions-CreateObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-fUML_is_class-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-CreateObjectAction-fUML_is_class">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;The given classifier must be a
                  class.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-fUML_is_class-_specification">
                <language>OCL</language>
                <body>self.classifier.oclIsKindOf(Class)</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-CreateObjectAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_result_createObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-CreateObjectAction-result">
                <body>Gives the output pin on which the result is put.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier"
              name="classifier" type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier">
                <body>Classifier to be instantiated.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setClassifier"
              name="setClassifier" class="Syntax-Actions-IntermediateActions-CreateObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setClassifier-_ownedComment.0">
                <body>this.classifier = classifier;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setClassifier-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setResult"
              name="setResult" class="Syntax-Actions-IntermediateActions-CreateObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-CreateObjectAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction" name="DestroyLinkAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-WriteLinkAction"
              specific="Syntax-Actions-IntermediateActions-DestroyLinkAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData" name="endData"
              type="Syntax-Actions-IntermediateActions-LinkEndDestructionData"
              aggregation="composite"
              redefinedProperty="Syntax-Actions-IntermediateActions-LinkAction-endData"
              association="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData">
                <body>Specifies ends of association and inputs.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData-_lowerValue"
                value="2"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-addEndData"
              name="addEndData" class="Syntax-Actions-IntermediateActions-DestroyLinkAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-addEndData-_ownedComment.0">
                <body>super.addEndData(endData);&#xD;
                  this.endData.addValue((LinkEndDestructionData)endData);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyLinkAction-addEndData-endData"
                name="endData" type="Syntax-Actions-IntermediateActions-LinkEndData"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction"
            name="DestroyObjectAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-IntermediateActions-DestroyObjectAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyLinks"
              name="isDestroyLinks">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyLinks-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyLinks">
                <body>Specifies whether links in which the object participates are destroyed along
                  with the object.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyLinks-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyOwnedObjects"
              name="isDestroyOwnedObjects">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyOwnedObjects-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyOwnedObjects">
                <body>Specifies whether objects owned by the object are destroyed along with the
                  object.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-isDestroyOwnedObjects-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-target" name="target"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-target-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-DestroyObjectAction-target">
                <body>The input pin providing the object to be destroyed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-target-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-target-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyLinks"
              name="setIsDestroyLinks"
              class="Syntax-Actions-IntermediateActions-DestroyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyLinks-_ownedComment.0">
                <body>this.isDestroyLinks = isDestroyLinks;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyLinks-isDestroyLinks"
                name="isDestroyLinks">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyOwnedObjects"
              name="setIsDestroyOwnedObjects"
              class="Syntax-Actions-IntermediateActions-DestroyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyOwnedObjects-_ownedComment.0">
                <body>this.isDestroyOwnedObjects = isDestroyOwnedObjects;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setIsDestroyOwnedObjects-isDestroyOwnedObjects"
                name="isDestroyOwnedObjects">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setTarget"
              name="setTarget" class="Syntax-Actions-IntermediateActions-DestroyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setTarget-_ownedComment.0">
                <body>super.addInput(target);&#xD; this.target = target;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-DestroyObjectAction-setTarget-target"
                name="target" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction"
            name="AddStructuralFeatureValueAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-_generalization.0"
              general="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"
              specific="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-isReplaceAll"
              name="isReplaceAll">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-isReplaceAll-_ownedComment.0"
                annotatedElement="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-isReplaceAll">
                <body>Specifies whether existing values of the structural feature of the object
                  should be removed before adding the new value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-isReplaceAll-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-insertAt"
              name="insertAt" visibility="public" type="Syntax-Actions-BasicActions-InputPin"
              aggregation="composite" subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-insertAt-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-insertAt-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setIsReplaceAll"
              name="setIsReplaceAll"
              class="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setIsReplaceAll-_ownedComment.0">
                <body>this.isReplaceAll = isReplaceAll;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setIsReplaceAll-isReplaceAll"
                name="isReplaceAll">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setInsertAt"
              name="setInsertAt"
              class="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setInsertAt-_ownedComment.0">
                <body>if (insertAt != null) {&#xD; super.addInput(insertAt);&#xD; }&#xD;
                  &#xD; this.insertAt = insertAt;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-setInsertAt-insertAt"
                name="insertAt" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction"
            name="A_target_destroyObjectAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-DestroyObjectAction-target Syntax-Actions-IntermediateActions-A_target_destroyObjectAction-destroyObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction-destroyObjectAction"
              name="destroyObjectAction"
              type="Syntax-Actions-IntermediateActions-DestroyObjectAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction"
              association="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction-destroyObjectAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_target_destroyObjectAction-destroyObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction"
            name="A_endData_destroyLinkAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-DestroyLinkAction-endData Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction-destroyLinkAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction-destroyLinkAction"
              name="destroyLinkAction" type="Syntax-Actions-IntermediateActions-DestroyLinkAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction"
              association="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction-destroyLinkAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_destroyLinkAction-destroyLinkAction-_lowerValue"
                value="1"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_createObjectAction"
            name="A_result_createObjectAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-CreateObjectAction-result Syntax-Actions-IntermediateActions-A_result_createObjectAction-createObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_createObjectAction-createObjectAction"
              name="createObjectAction" type="Syntax-Actions-IntermediateActions-CreateObjectAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_createObjectAction"
              association="Syntax-Actions-IntermediateActions-A_result_createObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_createObjectAction-createObjectAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_createObjectAction-createObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction"
            name="A_classifier_createObjectAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-CreateObjectAction-classifier Syntax-Actions-IntermediateActions-A_classifier_createObjectAction-createObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction-createObjectAction"
              name="createObjectAction" type="Syntax-Actions-IntermediateActions-CreateObjectAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction"
              association="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction-createObjectAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_classifier_createObjectAction-createObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_endData_createLinkAction"
            name="A_endData_createLinkAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-CreateLinkAction-endData Syntax-Actions-IntermediateActions-A_endData_createLinkAction-createLinkAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_endData_createLinkAction-createLinkAction"
              name="createLinkAction" type="Syntax-Actions-IntermediateActions-CreateLinkAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_endData_createLinkAction"
              association="Syntax-Actions-IntermediateActions-A_endData_createLinkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_createLinkAction-createLinkAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_createLinkAction-createLinkAction-_lowerValue"
                value="1"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction"
            name="A_result_clearStructuralFeatureAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction-result Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction-clearStructuralFeatureAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction-clearStructuralFeatureAction"
              name="clearStructuralFeatureAction" visibility="public"
              type="Syntax-Actions-IntermediateActions-ClearStructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction"
              association="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction-clearStructuralFeatureAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_clearStructuralFeatureAction-clearStructuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction"
            name="A_object_clearAssociationAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ClearAssociationAction-object Syntax-Actions-IntermediateActions-A_object_clearAssociationAction-clearAssociationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction-clearAssociationAction"
              name="clearAssociationAction"
              type="Syntax-Actions-IntermediateActions-ClearAssociationAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction"
              association="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction-clearAssociationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_object_clearAssociationAction-clearAssociationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction"
            name="A_association_clearAssociationAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ClearAssociationAction-association Syntax-Actions-IntermediateActions-A_association_clearAssociationAction-clearAssociationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction-clearAssociationAction"
              name="clearAssociationAction"
              type="Syntax-Actions-IntermediateActions-ClearAssociationAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction"
              association="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction-clearAssociationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_association_clearAssociationAction-clearAssociationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData"
            name="A_destroyAt_linkEndDestructionData" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkEndDestructionData-destroyAt Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData-linkEndDestructionData">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData-linkEndDestructionData"
              name="linkEndDestructionData"
              type="Syntax-Actions-IntermediateActions-LinkEndDestructionData"
              owningAssociation="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData"
              association="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData-linkEndDestructionData-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_destroyAt_linkEndDestructionData-linkEndDestructionData-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_value_linkEndData"
            name="A_value_linkEndData" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkEndData-value Syntax-Actions-IntermediateActions-A_value_linkEndData-linkEndData">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_value_linkEndData-linkEndData"
              name="linkEndData" type="Syntax-Actions-IntermediateActions-LinkEndData"
              owningAssociation="Syntax-Actions-IntermediateActions-A_value_linkEndData"
              association="Syntax-Actions-IntermediateActions-A_value_linkEndData">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_linkEndData-linkEndData-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_linkEndData-linkEndData-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_end_linkEndData" name="A_end_linkEndData"
            visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkEndData-end Syntax-Actions-IntermediateActions-A_end_linkEndData-linkEndData">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_end_linkEndData-linkEndData"
              name="linkEndData" type="Syntax-Actions-IntermediateActions-LinkEndData"
              owningAssociation="Syntax-Actions-IntermediateActions-A_end_linkEndData"
              association="Syntax-Actions-IntermediateActions-A_end_linkEndData">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_end_linkEndData-linkEndData-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_end_linkEndData-linkEndData-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData"
            name="A_insertAt_linkEndCreationData" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkEndCreationData-insertAt Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData-linkEndCreationData">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData-linkEndCreationData"
              name="linkEndCreationData"
              type="Syntax-Actions-IntermediateActions-LinkEndCreationData"
              owningAssociation="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData"
              association="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData-linkEndCreationData-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_linkEndCreationData-linkEndCreationData-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_endData_linkAction"
            name="A_endData_linkAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkAction-endData Syntax-Actions-IntermediateActions-A_endData_linkAction-linkAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_endData_linkAction-linkAction"
              name="linkAction" type="Syntax-Actions-IntermediateActions-LinkAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_endData_linkAction"
              association="Syntax-Actions-IntermediateActions-A_endData_linkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_linkAction-linkAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_endData_linkAction-linkAction-_lowerValue"
                value="1"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction"
            name="A_result_readStructuralFeatureAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction-result Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction-readStructuralFeatureAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction-readStructuralFeatureAction"
              name="readStructuralFeatureAction"
              type="Syntax-Actions-IntermediateActions-ReadStructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction"
              association="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction-readStructuralFeatureAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readStructuralFeatureAction-readStructuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_readSelfAction"
            name="A_result_readSelfAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ReadSelfAction-result Syntax-Actions-IntermediateActions-A_result_readSelfAction-readSelfAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_readSelfAction-readSelfAction"
              name="readSelfAction" type="Syntax-Actions-IntermediateActions-ReadSelfAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_readSelfAction"
              association="Syntax-Actions-IntermediateActions-A_result_readSelfAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readSelfAction-readSelfAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readSelfAction-readSelfAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_readLinkAction"
            name="A_result_readLinkAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ReadLinkAction-result Syntax-Actions-IntermediateActions-A_result_readLinkAction-readLinkAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_readLinkAction-readLinkAction"
              name="readLinkAction" type="Syntax-Actions-IntermediateActions-ReadLinkAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_readLinkAction"
              association="Syntax-Actions-IntermediateActions-A_result_readLinkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readLinkAction-readLinkAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_readLinkAction-readLinkAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction"
            name="A_removeAt_removeStructuralFeatureValueAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction-removeAt Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction-removeStructuralFeatureValueAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction-removeStructuralFeatureValueAction"
              name="removeStructuralFeatureValueAction"
              type="Syntax-Actions-IntermediateActions-RemoveStructuralFeatureValueAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction"
              association="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction-removeStructuralFeatureValueAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_removeAt_removeStructuralFeatureValueAction-removeStructuralFeatureValueAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction"
            name="A_result_writeStructuralFeatureAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-result Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction-writeStructuralFeatureAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction-writeStructuralFeatureAction"
              name="writeStructuralFeatureAction" visibility="public"
              type="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction"
              association="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction-writeStructuralFeatureAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_writeStructuralFeatureAction-writeStructuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction"
            name="A_value_writeStructuralFeatureAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction-value Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction-writeStructuralFeatureAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction-writeStructuralFeatureAction"
              name="writeStructuralFeatureAction"
              type="Syntax-Actions-IntermediateActions-WriteStructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction"
              association="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction-writeStructuralFeatureAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_writeStructuralFeatureAction-writeStructuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction"
            name="A_value_valueSpecificationAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ValueSpecificationAction-value Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction-valueSpecificationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction-valueSpecificationAction"
              name="valueSpecificationAction"
              type="Syntax-Actions-IntermediateActions-ValueSpecificationAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction"
              association="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction-valueSpecificationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_value_valueSpecificationAction-valueSpecificationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction"
            name="A_result_valueSpecificationAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-ValueSpecificationAction-result Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction-valueSpecificationAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction-valueSpecificationAction"
              name="valueSpecificationAction"
              type="Syntax-Actions-IntermediateActions-ValueSpecificationAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction"
              association="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction-valueSpecificationAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_valueSpecificationAction-valueSpecificationAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_first_testIdentityAction"
            name="A_first_testIdentityAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-TestIdentityAction-first Syntax-Actions-IntermediateActions-A_first_testIdentityAction-testIdentityAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_first_testIdentityAction-testIdentityAction"
              name="testIdentityAction" type="Syntax-Actions-IntermediateActions-TestIdentityAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_first_testIdentityAction"
              association="Syntax-Actions-IntermediateActions-A_first_testIdentityAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_first_testIdentityAction-testIdentityAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_first_testIdentityAction-testIdentityAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_result_testIdentityAction"
            name="A_result_testIdentityAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-TestIdentityAction-result Syntax-Actions-IntermediateActions-A_result_testIdentityAction-testIdentityAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_result_testIdentityAction-testIdentityAction"
              name="testIdentityAction" type="Syntax-Actions-IntermediateActions-TestIdentityAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_result_testIdentityAction"
              association="Syntax-Actions-IntermediateActions-A_result_testIdentityAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_testIdentityAction-testIdentityAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_result_testIdentityAction-testIdentityAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_second_testIdentityAction"
            name="A_second_testIdentityAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-TestIdentityAction-second Syntax-Actions-IntermediateActions-A_second_testIdentityAction-testIdentityAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_second_testIdentityAction-testIdentityAction"
              name="testIdentityAction" type="Syntax-Actions-IntermediateActions-TestIdentityAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_second_testIdentityAction"
              association="Syntax-Actions-IntermediateActions-A_second_testIdentityAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_second_testIdentityAction-testIdentityAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_second_testIdentityAction-testIdentityAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction"
            name="A_object_structuralFeatureAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-StructuralFeatureAction-object Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction-structuralFeatureAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction-structuralFeatureAction"
              name="structuralFeatureAction"
              type="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction"
              association="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction-structuralFeatureAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_object_structuralFeatureAction-structuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature"
            name="A_structuralFeatureAction_structuralFeature" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature-structuralFeatureAction Syntax-Actions-IntermediateActions-StructuralFeatureAction-structuralFeature">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature-structuralFeatureAction"
              name="structuralFeatureAction"
              type="Syntax-Actions-IntermediateActions-StructuralFeatureAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature"
              association="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature-structuralFeatureAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_structuralFeatureAction_structuralFeature-structuralFeatureAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction"
            name="A_insertAt_addStructuralFeatureValueAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction-insertAt Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction-addStructuralFeatureValueAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction-addStructuralFeatureValueAction"
              name="addStructuralFeatureValueAction" visibility="public"
              type="Syntax-Actions-IntermediateActions-AddStructuralFeatureValueAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction"
              association="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction-addStructuralFeatureValueAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_insertAt_addStructuralFeatureValueAction-addStructuralFeatureValueAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-IntermediateActions-A_inputValue_linkAction"
            name="A_inputValue_linkAction" visibility="private"
            memberEnd="Syntax-Actions-IntermediateActions-LinkAction-inputValue Syntax-Actions-IntermediateActions-A_inputValue_linkAction-linkAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-IntermediateActions-A_inputValue_linkAction-linkAction"
              name="linkAction" visibility="public"
              type="Syntax-Actions-IntermediateActions-LinkAction"
              owningAssociation="Syntax-Actions-IntermediateActions-A_inputValue_linkAction"
              association="Syntax-Actions-IntermediateActions-A_inputValue_linkAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-IntermediateActions-A_inputValue_linkAction-linkAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-IntermediateActions-A_inputValue_linkAction-linkAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Syntax-Actions-CompleteActions"
          name="CompleteActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Syntax-Actions-CompleteActions-_packageImport.0"
            importedPackage="Syntax-Actions-BasicActions"
            importingNamespace="Syntax-Actions-CompleteActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction"
            name="StartClassifierBehaviorAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object"
              name="object" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object">
                <body>Holds the object on which to start the owned behavior.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-setObject"
              name="setObject" class="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction"
            name="StartObjectBehaviorAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-fUML_is_asynchronous"
              name="fUML_is_asynchronous"
              constrainedElement="Syntax-Actions-CompleteActions-StartObjectBehaviorAction"
              context="Syntax-Actions-CompleteActions-StartObjectBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-fUML_is_asynchronous-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-fUML_is_asynchronous">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;isSynchronous must be
                  false.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-fUML_is_asynchronous-_specification">
                <language>OCL</language>
                <body>not self.isSynchronous</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-_generalization.0"
              general="Syntax-Actions-BasicActions-CallAction"
              specific="Syntax-Actions-CompleteActions-StartObjectBehaviorAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-object" name="object"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-setObject"
              name="setObject" class="Syntax-Actions-CompleteActions-StartObjectBehaviorAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Syntax-Actions-CompleteActions-ReduceAction"
            name="ReduceAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-ReduceAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-reducer" name="reducer"
              type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
              association="Syntax-Actions-CompleteActions-A_reducer_reduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-reducer-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReduceAction-reducer">
                <body>Behavior that is applied to two elements of the input collection to produce a
                  value that is the same type as elements of the collection.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-reducer-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-reducer-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-CompleteActions-A_result_reduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReduceAction-result">
                <body>Gives the output pin on which the result is put.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-result-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-result-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-collection" name="collection"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-CompleteActions-A_collection_reduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-collection-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReduceAction-collection">
                <body>The collection to be reduced.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-collection-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-collection-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-isOrdered" name="isOrdered">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-isOrdered-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReduceAction-isOrdered">
                <body>Tells whether the order of the input collection should determine the order in
                  which the behavior is applied to its elements.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-isOrdered-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setIsOrdered" name="setIsOrdered"
              class="Syntax-Actions-CompleteActions-ReduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setIsOrdered-_ownedComment.0">
                <body>this.isOrdered = isOrdered;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setIsOrdered-isOrdered"
                name="isOrdered">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setReducer" name="setReducer"
              class="Syntax-Actions-CompleteActions-ReduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setReducer-_ownedComment.0">
                <body>this.reducer = reducer;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setReducer-reducer"
                name="reducer" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setCollection"
              name="setCollection" class="Syntax-Actions-CompleteActions-ReduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setCollection-_ownedComment.0">
                <body>super.addInput(collection);&#xD; this.collection = collection;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setCollection-collection"
                name="collection" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setResult" name="setResult"
              class="Syntax-Actions-CompleteActions-ReduceAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReduceAction-setResult-result" name="result"
                type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction" name="ReadExtentAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-fUML_is_class"
              name="fUML_is_class"
              constrainedElement="Syntax-Actions-CompleteActions-ReadExtentAction"
              context="Syntax-Actions-CompleteActions-ReadExtentAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-fUML_is_class-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadExtentAction-fUML_is_class">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;The classifier must be a
                  class.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-fUML_is_class-_specification">
                <language>OCL</language>
                <body>self.classifier.oclIsKindOf(Class)</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-ReadExtentAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-CompleteActions-A_result_readExtentAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadExtentAction-result">
                <body>The runtime instances of the classifier.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-classifier" name="classifier"
              type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Actions-CompleteActions-A_classifier_readExtentAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-classifier-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadExtentAction-classifier">
                <body>The classifier whose instances are to be retrieved.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-classifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-classifier-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setClassifier"
              name="setClassifier" class="Syntax-Actions-CompleteActions-ReadExtentAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setClassifier-_ownedComment.0">
                <body>this.classifier = classifier;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setClassifier-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setResult" name="setResult"
              class="Syntax-Actions-CompleteActions-ReadExtentAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadExtentAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction"
            name="ReadIsClassifiedObjectAction">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-isDirect"
              name="isDirect">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-isDirect-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-isDirect">
                <body>Indicates whether the classifier must directly classify the input
                object.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-isDirect-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier"
              name="classifier" type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier">
                <body>The classifier against which the classification of the input object is
                tested.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result"
              name="result" type="Syntax-Actions-BasicActions-OutputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result">
                <body>After termination of the action, will hold the result of the test.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object"
              name="object" type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object">
                <body>Holds the object whose classification is to be tested.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setIsDirect"
              name="setIsDirect" class="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setIsDirect-_ownedComment.0">
                <body>this.isDirect = isDirect;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setIsDirect-isDirect"
                name="isDirect">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setClassifier"
              name="setClassifier"
              class="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setClassifier-_ownedComment.0">
                <body>this.classifier = classifier;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setClassifier-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setResult"
              name="setResult" class="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result = result;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setObject"
              name="setObject" class="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction"
            name="ReclassifyObjectAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-fUML_old_new_classes"
              name="fUML_old_new_classes"
              constrainedElement="Syntax-Actions-CompleteActions-ReclassifyObjectAction"
              context="Syntax-Actions-CompleteActions-ReclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-fUML_old_new_classes-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReclassifyObjectAction-fUML_old_new_classes">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;All the old and new classifiers must be
                  classes.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-fUML_old_new_classes-_specification">
                <language>OCL</language>
                <body>self.oldClassifier-&gt;forAll(oclIsKindOf(Class)) and
                  self.newClassifier-&gt;forAll(oclIsKindOf(Class))</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-ReclassifyObjectAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-isReplaceAll"
              name="isReplaceAll">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-isReplaceAll-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReclassifyObjectAction-isReplaceAll">
                <body>Specifies whether existing classifiers should be removed before adding the new
                  classifiers.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-isReplaceAll-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier"
              name="oldClassifier" type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier">
                <body>A set of classifiers to be removed from the classifiers of the object.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-object" name="object"
              type="Syntax-Actions-BasicActions-InputPin" aggregation="composite"
              subsettedProperty="Syntax-Actions-BasicActions-Action-input"
              association="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-object-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-ReclassifyObjectAction-object">
                <body>Holds the object to be reclassified.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-object-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-object-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-newClassifier"
              name="newClassifier" visibility="public" type="Syntax-Classes-Kernel-Classifier"
              association="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-newClassifier-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-newClassifier-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setIsReplaceAll"
              name="setIsReplaceAll" class="Syntax-Actions-CompleteActions-ReclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setIsReplaceAll-_ownedComment.0">
                <body>this.isReplaceAll = isReplaceAll;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setIsReplaceAll-isReplaceAll"
                name="isReplaceAll">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addOldClassifier"
              name="addOldClassifier" class="Syntax-Actions-CompleteActions-ReclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addOldClassifier-_ownedComment.0">
                <body>this.oldClassifier.addValue(oldClassifier);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addOldClassifier-oldClassifier"
                name="oldClassifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addNewClassifier"
              name="addNewClassifier" class="Syntax-Actions-CompleteActions-ReclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addNewClassifier-_ownedComment.0">
                <body>this.newClassifier.addValue(newClassifier);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-addNewClassifier-newClassifier"
                name="newClassifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setObject"
              name="setObject" class="Syntax-Actions-CompleteActions-ReclassifyObjectAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setObject-_ownedComment.0">
                <body>super.addInput(object);&#xD; this.object = object;&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-ReclassifyObjectAction-setObject-object"
                name="object" type="Syntax-Actions-BasicActions-InputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction" name="AcceptEventAction">
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_active_context"
              name="fUML_active_context"
              constrainedElement="Syntax-Actions-CompleteActions-AcceptEventAction"
              context="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_active_context-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_active_context">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;&#xD; &lt;P&gt;The context of the containing
                  activity of the accept event action must be an active class.
                  &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_active_context-_specification">
                <language>OCL</language>
                <body>self.context.oclAsType(Class).isActive</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_only_signal_event_triggers"
              name="fUML_only_signal_event_triggers"
              constrainedElement="Syntax-Actions-CompleteActions-AcceptEventAction"
              context="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_only_signal_event_triggers-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_only_signal_event_triggers">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;All triggers must be for signal
                  events.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_only_signal_event_triggers-_specification">
                <language>OCL</language>
                <body>self.trigger.event-&gt;forAll(oclIsKindOf(SignalEvent))</body>
              </specification>
            </ownedRule>
            <ownedRule xmi:type="uml:Constraint"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_receive_all_triggering_signals"
              name="fUML_receive_all_triggering_signals"
              constrainedElement="Syntax-Actions-CompleteActions-AcceptEventAction"
              context="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_receive_all_triggering_signals-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_receive_all_triggering_signals">
                <body>&lt;HTML&gt;&lt;HEAD&gt;&#xD; &lt;META content="MSHTML
                  6.00.6000.16705" name=GENERATOR&gt;&lt;/HEAD&gt;&#xD;
                  &lt;BODY&gt;The context class must have receptions for all triggering
                  signals.&lt;/BODY&gt;&lt;/HTML&gt;</body>
              </ownedComment>
              <specification xmi:type="uml:OpaqueExpression"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-fUML_receive_all_triggering_signals-_specification">
                <language>OCL</language>
                <body>let cls:Class = self.context.oclAsType(Class) in&#xD; let
                  classes:Bag(Class) =
                  cls.allParents()-&gt;select(oclIsKindOf(Class))-&gt;collect(oclAsType(Class))-&gt;union(cls-&gt;asBag())
                  in&#xD;
                  classes.ownedReception.signal-&gt;includesAll(self.trigger.event-&gt;collect(oclAsType(SignalEvent)).signal)</body>
              </specification>
            </ownedRule>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-_generalization.0"
              general="Syntax-Actions-BasicActions-Action"
              specific="Syntax-Actions-CompleteActions-AcceptEventAction"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-isUnmarshall"
              name="isUnmarshall">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-isUnmarshall-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-isUnmarshall">
                <body>Indicates whether there is a single output pin for the event, or multiple
                  output pins for attributes of the event.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              <defaultValue xmi:type="uml:LiteralBoolean"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-isUnmarshall-_defaultValue">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-result" name="result"
              type="Syntax-Actions-BasicActions-OutputPin"
              subsettedProperty="Syntax-Actions-BasicActions-Action-output"
              association="Syntax-Actions-CompleteActions-A_result_acceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-result-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-result">
                <body>Pins holding the received event objects or their attributes. Event objects may
                  be copied in transmission, so identity might not be preserved.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-result-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-result-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-trigger" name="trigger"
              type="Syntax-CommonBehaviors-Communications-Trigger" aggregation="composite"
              association="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-trigger-_ownedComment.0"
                annotatedElement="Syntax-Actions-CompleteActions-AcceptEventAction-trigger">
                <body>The type of events accepted by the action, as specified by triggers. For
                  triggers with signal events, a signal of the specified type or any subtype of the
                  specified signal type is accepted.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-trigger-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-trigger-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-setIsUnmarshall"
              name="setIsUnmarshall" class="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-setIsUnmarshall-_ownedComment.0">
                <body>this.isUnmarshall = isUnmarshall;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-setIsUnmarshall-isUnmarshall"
                name="isUnmarshall">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addTrigger" name="addTrigger"
              class="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addTrigger-_ownedComment.0">
                <body>this.trigger.addValue(trigger);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addTrigger-trigger"
                name="trigger" type="Syntax-CommonBehaviors-Communications-Trigger"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addResult" name="addResult"
              class="Syntax-Actions-CompleteActions-AcceptEventAction">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addResult-_ownedComment.0">
                <body>super.addOutput(result);&#xD; this.result.addValue(result);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Syntax-Actions-CompleteActions-AcceptEventAction-addResult-result"
                name="result" type="Syntax-Actions-BasicActions-OutputPin"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_result_acceptEventAction"
            name="A_result_acceptEventAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-AcceptEventAction-result Syntax-Actions-CompleteActions-A_result_acceptEventAction-acceptEventAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_result_acceptEventAction-acceptEventAction"
              name="acceptEventAction" type="Syntax-Actions-CompleteActions-AcceptEventAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_result_acceptEventAction"
              association="Syntax-Actions-CompleteActions-A_result_acceptEventAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_result_acceptEventAction-acceptEventAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_result_acceptEventAction-acceptEventAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction"
            name="A_trigger_acceptEventAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-AcceptEventAction-trigger Syntax-Actions-CompleteActions-A_trigger_acceptEventAction-acceptEventAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction-acceptEventAction"
              name="acceptEventAction" type="Syntax-Actions-CompleteActions-AcceptEventAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction"
              association="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction-acceptEventAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_trigger_acceptEventAction-acceptEventAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object"
            name="A_reclassifyObjectAction_object" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object-reclassifyObjectAction Syntax-Actions-CompleteActions-ReclassifyObjectAction-object">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object-reclassifyObjectAction"
              name="reclassifyObjectAction"
              type="Syntax-Actions-CompleteActions-ReclassifyObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object"
              association="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object-reclassifyObjectAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_reclassifyObjectAction_object-reclassifyObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction"
            name="A_oldClassifier_reclassifyObjectAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReclassifyObjectAction-oldClassifier Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction-reclassifyObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction-reclassifyObjectAction"
              name="reclassifyObjectAction"
              type="Syntax-Actions-CompleteActions-ReclassifyObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction"
              association="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction-reclassifyObjectAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_oldClassifier_reclassifyObjectAction-reclassifyObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction"
            name="A_object_readIsClassifiedObjectAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-object Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction-readIsClassifiedObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction-readIsClassifiedObjectAction"
              name="readIsClassifiedObjectAction"
              type="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction"
              association="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_object_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction"
            name="A_result_readIsClassifiedObjectAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-result Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction-readIsClassifiedObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction-readIsClassifiedObjectAction"
              name="readIsClassifiedObjectAction"
              type="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction"
              association="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_result_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction"
            name="A_classifier_readIsClassifiedObjectAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction-classifier Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction-readIsClassifiedObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction-readIsClassifiedObjectAction"
              name="readIsClassifiedObjectAction"
              type="Syntax-Actions-CompleteActions-ReadIsClassifiedObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction"
              association="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_classifier_readIsClassifiedObjectAction-readIsClassifiedObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_classifier_readExtentAction"
            name="A_classifier_readExtentAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReadExtentAction-classifier Syntax-Actions-CompleteActions-A_classifier_readExtentAction-readExtentAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_classifier_readExtentAction-readExtentAction"
              name="readExtentAction" type="Syntax-Actions-CompleteActions-ReadExtentAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_classifier_readExtentAction"
              association="Syntax-Actions-CompleteActions-A_classifier_readExtentAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_classifier_readExtentAction-readExtentAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_classifier_readExtentAction-readExtentAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_result_readExtentAction"
            name="A_result_readExtentAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReadExtentAction-result Syntax-Actions-CompleteActions-A_result_readExtentAction-readExtentAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_result_readExtentAction-readExtentAction"
              name="readExtentAction" type="Syntax-Actions-CompleteActions-ReadExtentAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_result_readExtentAction"
              association="Syntax-Actions-CompleteActions-A_result_readExtentAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_result_readExtentAction-readExtentAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_result_readExtentAction-readExtentAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_result_reduceAction"
            name="A_result_reduceAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReduceAction-result Syntax-Actions-CompleteActions-A_result_reduceAction-reduceAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_result_reduceAction-reduceAction"
              name="reduceAction" type="Syntax-Actions-CompleteActions-ReduceAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_result_reduceAction"
              association="Syntax-Actions-CompleteActions-A_result_reduceAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_result_reduceAction-reduceAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_result_reduceAction-reduceAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_collection_reduceAction"
            name="A_collection_reduceAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReduceAction-collection Syntax-Actions-CompleteActions-A_collection_reduceAction-reduceAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_collection_reduceAction-reduceAction"
              name="reduceAction" type="Syntax-Actions-CompleteActions-ReduceAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_collection_reduceAction"
              association="Syntax-Actions-CompleteActions-A_collection_reduceAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_collection_reduceAction-reduceAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_collection_reduceAction-reduceAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_reducer_reduceAction"
            name="A_reducer_reduceAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReduceAction-reducer Syntax-Actions-CompleteActions-A_reducer_reduceAction-reduceAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_reducer_reduceAction-reduceAction"
              name="reduceAction" type="Syntax-Actions-CompleteActions-ReduceAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_reducer_reduceAction"
              association="Syntax-Actions-CompleteActions-A_reducer_reduceAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_reducer_reduceAction-reduceAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_reducer_reduceAction-reduceAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction"
            name="A_object_startObjectBehaviorAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-StartObjectBehaviorAction-object Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction-startObjectBehaviorAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction-startObjectBehaviorAction"
              name="startObjectBehaviorAction" visibility="public"
              type="Syntax-Actions-CompleteActions-StartObjectBehaviorAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction"
              association="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction-startObjectBehaviorAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_object_startObjectBehaviorAction-startObjectBehaviorAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction"
            name="A_object_startClassifierBehaviorAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction-object Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction-startClassifierBehaviorAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction-startClassifierBehaviorAction"
              name="startClassifierBehaviorAction"
              type="Syntax-Actions-CompleteActions-StartClassifierBehaviorAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction"
              association="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction-startClassifierBehaviorAction-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_object_startClassifierBehaviorAction-startClassifierBehaviorAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction"
            name="A_newClassifier_reclassifyObjectAction" visibility="private"
            memberEnd="Syntax-Actions-CompleteActions-ReclassifyObjectAction-newClassifier Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction-reclassifyObjectAction">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction-reclassifyObjectAction"
              name="reclassifyObjectAction" visibility="public"
              type="Syntax-Actions-CompleteActions-ReclassifyObjectAction"
              owningAssociation="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction"
              association="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction-reclassifyObjectAction-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Syntax-Actions-CompleteActions-A_newClassifier_reclassifyObjectAction-reclassifyObjectAction-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-L1" name="L1">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L1-_packageMerge.0"
          mergedPackage="Syntax-Classes-Kernel" receivingPackage="Syntax-L1"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L1-_packageMerge.1"
          mergedPackage="Syntax-CommonBehaviors-BasicBehaviors" receivingPackage="Syntax-L1"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L1-_packageMerge.2"
          mergedPackage="Syntax-CommonBehaviors-Communications" receivingPackage="Syntax-L1"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-L2" name="L2">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L2-_packageMerge.0"
          mergedPackage="Syntax-L1" receivingPackage="Syntax-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L2-_packageMerge.1"
          mergedPackage="Syntax-Actions-IntermediateActions" receivingPackage="Syntax-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L2-_packageMerge.2"
          mergedPackage="Syntax-Activities-IntermediateActivities" receivingPackage="Syntax-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L2-_packageMerge.3"
          mergedPackage="Syntax-Actions-BasicActions" receivingPackage="Syntax-L2"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Syntax-L3" name="L3">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L3-_packageMerge.0"
          mergedPackage="Syntax-L2" receivingPackage="Syntax-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L3-_packageMerge.1"
          mergedPackage="Syntax-Activities-CompleteStructuredActivities"
          receivingPackage="Syntax-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L3-_packageMerge.2"
          mergedPackage="Syntax-Activities-ExtraStructuredActivities" receivingPackage="Syntax-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Syntax-L3-_packageMerge.3"
          mergedPackage="Syntax-Actions-CompleteActions" receivingPackage="Syntax-L3"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="Semantics" name="Semantics">
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Actions" name="Actions">
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Actions-BasicActions"
          name="BasicActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-BasicActions-_packageImport.0"
            importedPackage="Semantics-Activities-IntermediateActivities"
            importingNamespace="Semantics-Actions-BasicActions"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-BasicActions-_packageImport.1"
            importedPackage="Syntax-Actions-BasicActions"
            importingNamespace="Semantics-Actions-BasicActions"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-BasicActions-_packageImport.2"
            importedPackage="Semantics-CommonBehaviors-Communications"
            importingNamespace="Semantics-Actions-BasicActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation"
            name="SendSignalActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-SendSignalActionActivation">
              <body>A send signal action activation is an invocation action activation for a send
                signal action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-InvocationActionActivation"
              specific="Semantics-Actions-BasicActions-SendSignalActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation-doAction"
              name="doAction" class="Semantics-Actions-BasicActions-SendSignalActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-SendSignalActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-SendSignalActionActivation-doAction">
                <body>// Get the value from the target pin. If the value is not a reference, then do
                  nothing.&#xD; // Otherwise, construct a signal using the values from the
                  argument pins and send it to the referent object.&#xD; &#xD;
                  SendSignalAction action = (SendSignalAction)(this.node);&#xD; Value target =
                  this.takeTokens(action.target).getValue(0);&#xD; &#xD; if (target
                  instanceof Reference) {&#xD; Signal signal = action.signal;&#xD; &#xD;
                  SignalInstance signalInstance = new SignalInstance();&#xD; signalInstance.type
                  = signal;&#xD; &#xD; PropertyList attributes =
                  signal.ownedAttribute;&#xD; InputPinList argumentPins =
                  action.argument;&#xD; for (int i = 0; i &lt; attributes.size(); i++)
                  {&#xD; Property attribute = attributes.getValue(i);&#xD; InputPin
                  argumentPin = argumentPins.getValue(i);&#xD; ValueList values =
                  this.takeTokens(argumentPin);&#xD; signalInstance.setFeatureValue(attribute,
                  values, 0);&#xD; }&#xD; &#xD;
                  ((Reference)target).send(signalInstance);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-PinActivation" name="PinActivation"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-PinActivation">
              <body>A pin activation is an object node activation for a node that is a pin.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ObjectNodeActivation"
              specific="Semantics-Actions-BasicActions-PinActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-actionActivation"
              name="actionActivation" type="Semantics-Actions-BasicActions-ActionActivation"
              association="Semantics-Actions-BasicActions-A_pinActivations_actionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-actionActivation-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-PinActivation-actionActivation">
                <body>The activation of the action that owns the pin for this pin activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-actionActivation-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-actionActivation-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-fire" name="fire"
              class="Semantics-Actions-BasicActions-PinActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-PinActivation-fire">
                <body>// Add all incoming tokens to the pin.&#xD; // [Note that a pin will
                  consume all tokens offered to it, even if this is more than the multiplicity upper
                  bound, but will only offer tokens up to that upper bound.]&#xD; &#xD;
                  Debug.println("[fire] Pin " + (this.node==null? "": this.node.name +
                  "..."));&#xD; &#xD; this.addTokens(incomingTokens);&#xD; &#xD;
                  &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-PinActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-PinActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-PinActivation-takeOfferedTokens"
              name="takeOfferedTokens" class="Semantics-Actions-BasicActions-PinActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-takeOfferedTokens-_ownedComment.0">
                <body>// Take only a number of tokens only up to the limit allowed by&#xD; //
                  the multiplicity upper bound of the pin for this activation.&#xD; &#xD;
                  int count = this.countUnofferedTokens();&#xD; int upper = -1;&#xD;
                  &#xD; // Note: A pin activation used in an expansion activation group
                  &#xD; // will have this.node == null.&#xD; if (this.node != null) {
                  &#xD; upper =
                  ((Pin)(this.node)).multiplicityElement.upper.naturalValue;&#xD; }&#xD;
                  &#xD; TokenList tokens = new TokenList();&#xD; &#xD; // Note: upper
                  &lt; 0 indicates an unbounded upper multiplicity.&#xD; if (upper &lt;
                  0 | count &lt; upper) {&#xD; ActivityEdgeInstanceList incomingEdges =
                  this.incomingEdges;&#xD; for (int i=0; i&lt;incomingEdges.size(); i++)
                  {&#xD; ActivityEdgeInstance edge = incomingEdges.getValue(i);&#xD; int
                  incomingCount = edge.countOfferedValues();&#xD; TokenList incomingTokens = new
                  TokenList();&#xD; if (upper &lt; 0 | incomingCount &lt; upper - count)
                  {&#xD; incomingTokens = edge.takeOfferedTokens();&#xD; count = count +
                  incomingCount;&#xD; } else if (count &lt; upper) {&#xD; incomingTokens
                  = edge.takeOfferedTokens(upper-count);&#xD; count = upper;&#xD; }&#xD;
                  for (int j = 0; j &lt; incomingTokens.size(); j++) {&#xD; Token token =
                  incomingTokens.getValue(j);&#xD; tokens.addValue(token);&#xD; }&#xD;
                  }&#xD; }&#xD; &#xD; return tokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-PinActivation-takeOfferedTokens-Parameter1"
                name="Parameter1" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-PinActivation-takeOfferedTokens-Parameter1-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-PinActivation-takeOfferedTokens-Parameter1-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-OutputPinActivation" name="OutputPinActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-OutputPinActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-OutputPinActivation">
              <body>An output pin activation is a pin activation for an output pin.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-OutputPinActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-OutputPinActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-PinActivation"
              specific="Semantics-Actions-BasicActions-OutputPinActivation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-InvocationActionActivation"
            name="InvocationActionActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-InvocationActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-InvocationActionActivation">
              <body>An invocation action activation is an action activation of an invocation
              action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-InvocationActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-InvocationActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-BasicActions-InvocationActionActivation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-InputPinActivation" name="InputPinActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-InputPinActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-InputPinActivation">
              <body>An input pin activation is a pin activation for an input pin.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-InputPinActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-InputPinActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-PinActivation"
              specific="Semantics-Actions-BasicActions-InputPinActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-InputPinActivation-receiveOffer"
              name="receiveOffer" class="Semantics-Actions-BasicActions-InputPinActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-InputPinActivation-receiveOffer-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-InputPinActivation-receiveOffer">
                <body>// Forward the offer to the action activation. [When all input pins are ready,
                  the action will fire them.]&#xD; &#xD;
                  this.actionActivation.receiveOffer();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-InputPinActivation-isReady" name="isReady"
              class="Semantics-Actions-BasicActions-InputPinActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-InputPinActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-InputPinActivation-isReady">
                <body>// Return true if the total number of values already being offered by this pin
                  plus those being offered &#xD; // by the sources of incoming edges is at least
                  equal to the minimum multiplicity of the pin.&#xD; &#xD; boolean ready =
                  super.isReady();&#xD; if (ready) {&#xD; int totalValueCount =
                  this.countUnofferedTokens() + this.countOfferedValues();&#xD; int minimum =
                  ((Pin)this.node).multiplicityElement.lower;&#xD; ready = totalValueCount
                  &gt;= minimum;&#xD; }&#xD; &#xD; return ready;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-InputPinActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-CallActionActivation" name="CallActionActivation"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-CallActionActivation">
              <body>A call action activation is an invocation action activation for a call
              action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-InvocationActionActivation"
              specific="Semantics-Actions-BasicActions-CallActionActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-callExecutions"
              name="callExecutions" visibility="public"
              type="Semantics-CommonBehaviors-BasicBehaviors-Execution" aggregation="composite"
              association="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-callExecutions-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallActionActivation-callExecutions">
                <body>The set of execution object for currently ongoing calls made through this call
                  action activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-callExecutions-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-callExecutions-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-doAction" name="doAction"
              class="Semantics-Actions-BasicActions-CallActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallActionActivation-doAction">
                <body>// Get the call execution object, set its input parameters from the argument
                  pins and execute it.&#xD; // Once execution completes, copy the values of the
                  output parameters of the call execution to the result pins of the call action
                  execution, then destroy the execution.&#xD; &#xD; Execution callExecution
                  = this.getCallExecution();&#xD; &#xD; if (callExecution != null)
                  {&#xD; this.callExecutions.addValue(callExecution);&#xD; &#xD;
                  CallAction callAction = (CallAction)(this.node);&#xD; InputPinList
                  argumentPins = callAction.argument;&#xD; OutputPinList resultPins =
                  callAction.result;&#xD; &#xD; ParameterList parameters =
                  callExecution.getBehavior().ownedParameter;&#xD; &#xD; int pinNumber =
                  1;&#xD; int i = 1;&#xD; while (i &lt;= parameters.size()) {&#xD;
                  Parameter parameter = parameters.getValue(i-1);&#xD; if (parameter.direction
                  == ParameterDirectionKind.in |&#xD; parameter.direction ==
                  ParameterDirectionKind.inout) {&#xD; ParameterValue parameterValue = new
                  ParameterValue();&#xD; parameterValue.parameter = parameter;&#xD;
                  parameterValue.values =
                  this.takeTokens(argumentPins.getValue(pinNumber-1));&#xD;
                  callExecution.setParameterValue(parameterValue);&#xD; pinNumber = pinNumber +
                  1;&#xD; }&#xD; i = i + 1;&#xD; }&#xD; &#xD;
                  callExecution.execute();&#xD; &#xD; ParameterValueList
                  outputParameterValues = callExecution.getOutputParameterValues();&#xD; for
                  (int j = 0; j &lt; outputParameterValues.size(); j++) {&#xD;
                  ParameterValue outputParameterValue = outputParameterValues.getValue(j);&#xD;
                  OutputPin resultPin = resultPins.getValue(j);&#xD; this.putTokens(resultPin,
                  outputParameterValue.values);&#xD; }&#xD; &#xD;
                  callExecution.destroy();&#xD;
                  this.removeCallExecution(callExecution);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-getCallExecution"
              name="getCallExecution" isAbstract="true"
              class="Semantics-Actions-BasicActions-CallActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-getCallExecution-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallActionActivation-getCallExecution">
                <body>Get the execution object for the called behavior.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-getCallExecution-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-terminate"
              name="terminate" class="Semantics-Actions-BasicActions-CallActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallActionActivation-terminate">
                <body>// Terminate all call executions (if any), then terminate the call action
                  activation (self).&#xD; &#xD; for (int i = 0; i &lt;
                  this.callExecutions.size(); i++) {&#xD; Execution execution =
                  this.callExecutions.getValue(i);&#xD; execution.terminate();&#xD;
                  }&#xD; &#xD; super.terminate();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallActionActivation-removeCallExecution"
              name="removeCallExecution" class="Semantics-Actions-BasicActions-CallActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-removeCallExecution-_ownedComment.0">
                <body>// Remove the given execution from the current list of call
                  executions.&#xD; &#xD; boolean notFound = true;&#xD; int i =
                  1;&#xD; while (notFound &amp; i &lt;= this.callExecutions.size())
                  {&#xD; if (this.callExecutions.getValue(i-1) == execution) {&#xD;
                  this.callExecutions.removeValue(i-1);&#xD; notFound = false;&#xD;
                  }&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-CallActionActivation-removeCallExecution-execution"
                name="execution" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation"
            name="CallBehaviorActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-CallBehaviorActionActivation">
              <body>A call behavior action activation is a call action activation for a call
                behavior action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-CallActionActivation"
              specific="Semantics-Actions-BasicActions-CallBehaviorActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-getCallExecution"
              name="getCallExecution"
              class="Semantics-Actions-BasicActions-CallBehaviorActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-getCallExecution-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallBehaviorActionActivation-getCallExecution">
                <body>// Create and execution for the given behavior at the current locus and return
                  the resulting execution object.&#xD; // If the given behavior is in the
                  context of a classifier, then pass the current context object as the context for
                  the call.&#xD; // Otherwise, use a null context.&#xD; // [Note that this
                  requires the behavior context to be compatible with the type of the current
                  contect object.]&#xD; &#xD; Behavior behavior =
                  ((CallBehaviorAction)(this.node)).behavior;&#xD; &#xD; Object_
                  context;&#xD; if (behavior.context == null) {&#xD; context =
                  null;&#xD; } else {&#xD; // Debug.println("[getCallExecution] behavior
                  context = " + behavior.context.name);&#xD; context =
                  this.getExecutionContext();&#xD; }&#xD; &#xD; //
                  Debug.println("[getCallExecution] context = " + context);&#xD; &#xD;
                  return this.getExecutionLocus().factory.createExecution(behavior,
                  context);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-CallBehaviorActionActivation-getCallExecution-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation"
            name="CallOperationActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-CallOperationActionActivation">
              <body>A call operation action activation is a call action activation for a call
                operation action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-CallActionActivation"
              specific="Semantics-Actions-BasicActions-CallOperationActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-getCallExecution"
              name="getCallExecution"
              class="Semantics-Actions-BasicActions-CallOperationActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-getCallExecution-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-CallOperationActionActivation-getCallExecution">
                <body>// If the value on the target input pin is a reference, dispatch the operation
                  to it and return the resulting execution object.&#xD; &#xD;
                  CallOperationAction action = (CallOperationAction)(this.node);&#xD; Value
                  target = this.takeTokens(action.target).getValue(0);&#xD; &#xD; Execution
                  execution;&#xD; if (target instanceof Reference) {&#xD; execution =
                  ((Reference)target).dispatch(action.operation);&#xD; }&#xD; else
                  {&#xD; execution = null;&#xD; }&#xD; &#xD; return
                  execution;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-CallOperationActionActivation-getCallExecution-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-BasicActions-ActionActivation" name="ActionActivation"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-BasicActions-ActionActivation">
              <body>An action activation is an activity node activation for a node that is an
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-_ownedComment.1">
              <body>import java.util.*;&#xD; &#xD; import fUML.Syntax.*;&#xD; import
                fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              specific="Semantics-Actions-BasicActions-ActionActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-pinActivations"
              name="pinActivations" type="Semantics-Actions-BasicActions-PinActivation"
              association="Semantics-Actions-BasicActions-A_pinActivations_actionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-pinActivations-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-pinActivations">
                <body>The activations of the pins owned by the action of this action
                activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-pinActivations-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-pinActivations-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-firing" name="firing"
              visibility="public">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-firing-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-firing">
                <body>Whether this action activation is already firing. This attribute is only used
                  if the action for this action activation has isLocallyReentrant = false (the
                  default). If isLocallyReentrant=true, then firing always just remains
                false.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-run" name="run"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-run-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-run">
                <body>// Run this action activation and any outoging fork node attached to
                  it.&#xD; &#xD; super.run();&#xD; &#xD; if
                  (this.outgoingEdges.size() &gt; 0) {&#xD;
                  this.outgoingEdges.getValue(0).target.run();&#xD; }&#xD; &#xD;
                  this.firing = false;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeOfferedTokens"
              name="takeOfferedTokens" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeOfferedTokens-_ownedComment.0">
                <body>// If the action is not locally reentrant, then mark this activation as
                  firing.&#xD; // Take any incoming offers of control tokens, then concurrently
                  fire all input pin activations.&#xD; &#xD; // Note: This is included here
                  to happen in the same isolation scope as the isReady test.&#xD; this.firing =
                  !((Action)this.node).isLocallyReentrant;&#xD; &#xD; TokenList
                  offeredTokens = new TokenList();&#xD; &#xD; ActivityEdgeInstanceList
                  incomingEdges = this.incomingEdges;&#xD; for (int i = 0; i &lt;
                  incomingEdges.size(); i++) {&#xD; ActivityEdgeInstance incomingEdge =
                  incomingEdges.getValue(i);&#xD; TokenList tokens =
                  incomingEdge.takeOfferedTokens();&#xD; for (int j = 0; j &lt;
                  tokens.size(); j++) {&#xD; Token token = tokens.getValue(j);&#xD;
                  token.withdraw();&#xD; offeredTokens.addValue(token);&#xD; }&#xD;
                  }&#xD; &#xD; Action action = (Action)(this.node);&#xD; &#xD; //
                  *** Fire all input pins concurrently. ***&#xD; InputPinList inputPins =
                  action.input;&#xD; for (Iterator i = inputPins.iterator(); i.hasNext();)
                  {&#xD; InputPin pin = (InputPin)(i.next());&#xD; PinActivation
                  pinActivation = this.getPinActivation(pin);&#xD; TokenList tokens =
                  pinActivation.takeOfferedTokens();&#xD; pinActivation.fire(tokens);&#xD;
                  for (int j = 0; j &lt; tokens.size(); j++) {&#xD; Token token =
                  tokens.getValue(j);&#xD; offeredTokens.addValue(token);&#xD; }&#xD;
                  }&#xD; &#xD; return offeredTokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeOfferedTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeOfferedTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeOfferedTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-fire" name="fire"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-fire">
                <body>// Do the main action behavior then concurrently fire all output pin
                  activations &#xD; // and offer a single control token. Then activate the
                  action again, &#xD; // if it is still ready to fire and has at least one token
                  actually being&#xD; // offered to it.&#xD; &#xD; Action action =
                  (Action)this.node;&#xD; InputPinList inputPins = action.input;&#xD;
                  &#xD; boolean fireAgain = false;&#xD; do {&#xD; &#xD;
                  Debug.println("[fire] Action " + this.node.name + "...");&#xD;
                  Debug.println("[event] Fire activity=" +
                  this.getActivityExecution().getBehavior().name + " action=" +
                  this.node.name);&#xD; &#xD; this.doAction();&#xD;
                  this.sendOffers();&#xD; &#xD; Debug.println("[fire] Checking if " +
                  this.node.name + " should fire again...");&#xD; &#xD;
                  _beginIsolation();&#xD; this.firing = false;&#xD; if (this.isReady())
                  {&#xD; incomingTokens = this.takeOfferedTokens();&#xD; fireAgain =
                  incomingTokens.size() &gt; 0;&#xD; this.firing = this.isFiring() &amp;
                  fireAgain;&#xD; }&#xD; _endIsolation();&#xD; &#xD; } while
                  (fireAgain);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-terminate" name="terminate"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-terminate">
                <body>// Terminate this action activation and any outgoing fork node attached to
                  it.&#xD; &#xD; super.terminate();&#xD; &#xD; if
                  (this.outgoingEdges.size() &gt; 0) {&#xD;
                  this.outgoingEdges.getValue(0).target.terminate();&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-isReady" name="isReady"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-isReady">
                <body>// In addition to the default condition, check that, if the action has
                  isLocallyReentrant=false, then the activation is not currently firing,&#xD; //
                  and that the sources of all incoming edges (control flows) have offers and all
                  input pin activations are ready.&#xD; // [This assumes that all edges directly
                  incoming to the action are control flows.]&#xD; &#xD; boolean ready =
                  super.isReady() &amp; (((Action)this.node).isLocallyReentrant |
                  !this.isFiring());&#xD; &#xD; int i = 1;&#xD; while (ready &amp; i
                  &lt;= this.incomingEdges.size()) {&#xD; ready =
                  this.incomingEdges.getValue(i-1).hasOffer();&#xD; i = i + 1;&#xD;
                  }&#xD; &#xD; InputPinList inputPins =
                  ((Action)(this.node)).input;&#xD; int j = 1;&#xD; while (ready &amp; j
                  &lt;= inputPins.size()) {&#xD; ready =
                  this.getPinActivation(inputPins.getValue(j-1)).isReady();&#xD; j = j +
                  1;&#xD; }&#xD; &#xD; return ready;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-isFiring" name="isFiring"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isFiring-_ownedComment.0">
                <body>// Indicate whether this action activation is currently firing or
                  not.&#xD; &#xD; return firing;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isFiring-Parameter1"
                name="Parameter1" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-doAction" name="doAction"
              isAbstract="true" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-doAction">
                <body>Do the required action behavior.&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-sendOffers" name="sendOffers"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-sendOffers-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-sendOffers">
                <body>// Fire all output pins and send offers on all outgoing control
                  flows.&#xD; &#xD; Action action = (Action)(this.node);&#xD; &#xD;
                  // *** Send offers from all output pins concurrently. ***&#xD; OutputPinList
                  outputPins = action.output;&#xD; for (Iterator i = outputPins.iterator();
                  i.hasNext();) {&#xD; OutputPin outputPin = (OutputPin)i.next();&#xD;
                  PinActivation pinActivation = this.getPinActivation(outputPin);&#xD;
                  pinActivation.sendUnofferedTokens();&#xD; }&#xD; &#xD; // Send offers
                  on all outgoing control flows.&#xD; if (this.outgoingEdges.size() &gt; 0)
                  {&#xD; TokenList tokens = new TokenList();&#xD; tokens.addValue(new
                  ControlToken());&#xD; this.addTokens(tokens);&#xD;
                  this.outgoingEdges.getValue(0).sendOffer(tokens);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-createNodeActivations"
              name="createNodeActivations" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-createNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-createNodeActivations">
                <body>// Create node activations for the input and output pins of the action for
                  this activation.&#xD; // [Note: Pins are owned by their actions, not by the
                  enclosing activity (or group), so they must be activated through the action
                  activation.]&#xD; &#xD; Action action = (Action)(this.node);&#xD;
                  &#xD; ActivityNodeList inputPinNodes = new ActivityNodeList();&#xD;
                  InputPinList inputPins = action.input;&#xD; for (int i = 0; i &lt;
                  inputPins.size(); i++) {&#xD; InputPin inputPin =
                  inputPins.getValue(i);&#xD; inputPinNodes.addValue(inputPin);&#xD;
                  }&#xD; &#xD; this.group.createNodeActivations(inputPinNodes);&#xD;
                  &#xD; for (int i = 0; i &lt; inputPinNodes.size(); i++) {&#xD;
                  ActivityNode node = inputPinNodes.getValue(i);&#xD;
                  this.addPinActivation((PinActivation)(this.group.getNodeActivation(node)));&#xD;
                  }&#xD; &#xD; ActivityNodeList outputPinNodes = new
                  ActivityNodeList();&#xD; OutputPinList outputPins = action.output;&#xD;
                  for (int i = 0; i &lt; outputPins.size(); i++) {&#xD; OutputPin outputPin
                  = outputPins.getValue(i);&#xD; outputPinNodes.addValue(outputPin);&#xD;
                  }&#xD; &#xD; this.group.createNodeActivations(outputPinNodes);&#xD;
                  &#xD; for (int i = 0; i &lt; outputPinNodes.size(); i++) {&#xD;
                  ActivityNode node = outputPinNodes.getValue(i);&#xD;
                  this.addPinActivation((PinActivation)(this.group.getNodeActivation(node)));&#xD;
                  }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-addOutgoingEdge"
              name="addOutgoingEdge" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-addOutgoingEdge-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-addOutgoingEdge">
                <body>// If there are no outgoing activity edge instances, create a single activity
                  edge instance with a fork node execution at the other end.&#xD; // Add the
                  give edge to the fork node execution that is the target of the activity edge
                  instance out of this action execution.&#xD; // [This assumes that all edges
                  directly outgoing from the action are control flows, with an implicit fork for
                  offers out of the action.]&#xD; &#xD; ActivityNodeActivation
                  forkNodeActivation;&#xD; &#xD; if (this.outgoingEdges.size() == 0)
                  {&#xD; forkNodeActivation = new ForkNodeActivation();&#xD;
                  ActivityEdgeInstance newEdge = new ActivityEdgeInstance();&#xD;
                  super.addOutgoingEdge(newEdge);&#xD;
                  forkNodeActivation.addIncomingEdge(newEdge);&#xD; }&#xD; else {&#xD;
                  forkNodeActivation = this.outgoingEdges.getValue(0).target;&#xD; }&#xD;
                  &#xD; forkNodeActivation.addOutgoingEdge(edge);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-addOutgoingEdge-edge"
                name="edge" type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-addPinActivation"
              name="addPinActivation" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-addPinActivation-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-addPinActivation">
                <body>// Add a pin activation to this action activation.&#xD; &#xD;
                  this.pinActivations.addValue(pinActivation);&#xD;
                  pinActivation.actionActivation = this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-addPinActivation-pinActivation"
                name="pinActivation" type="Semantics-Actions-BasicActions-PinActivation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-getPinActivation"
              name="getPinActivation" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getPinActivation-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-getPinActivation">
                <body>// Precondition: The given pin is owned by the action of the action
                  activation.&#xD; // Return the pin activation corresponding to the given
                  pin.&#xD; &#xD; PinActivation pinActivation = null;&#xD; int i =
                  1;&#xD; while (pinActivation == null &amp; i &lt;=
                  this.pinActivations.size()) {&#xD; PinActivation thisPinActivation =
                  this.pinActivations.getValue(i-1);&#xD; if (thisPinActivation.node == pin)
                  {&#xD; pinActivation = thisPinActivation;&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return pinActivation;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getPinActivation-ReturnResult"
                name="ReturnResult" type="Semantics-Actions-BasicActions-PinActivation"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getPinActivation-pin"
                name="pin" type="Syntax-Actions-BasicActions-Pin"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-putToken" name="putToken"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putToken-_ownedComment.0">
                <body>// Precondition: The action execution has fired and the given pin is owned by
                  the action of the action execution.&#xD; // Place a token for the given value
                  on the pin activation corresponding to the given output pin.&#xD; &#xD;
                  Debug.println("[putToken] node = " + this.node.name);&#xD; &#xD;
                  ObjectToken token = new ObjectToken();&#xD; token.value = value;&#xD;
                  &#xD; PinActivation pinActivation = this.getPinActivation(pin);&#xD;
                  pinActivation.addToken(token);&#xD; </body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putToken-_ownedComment.1">
                <body>// Precondition: The action execution has fired and the given pin is owned by
                  the action of the action execution.&#xD; // Place a token for the given value
                  on the pin activation corresponding to the given output pin.&#xD; &#xD;
                  Debug.println("[putToken] node = " + this.node.name);&#xD; &#xD;
                  ObjectToken token = new ObjectToken();&#xD; token.value = value;&#xD;
                  PinActivation pinActivation = this.getPinActivation(pin);&#xD;
                  pinActivation.addToken(token);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putToken-pin" name="pin"
                type="Syntax-Actions-BasicActions-OutputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putToken-value" name="value"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens" name="putTokens"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-putTokens">
                <body>// Precondition: The action execution has fired and the given pin is owned by
                  the action of the action execution.&#xD; // Place tokens for the given values
                  on the pin activation corresponding to the given output pin.&#xD; &#xD; //
                  Debug.println("[putTokens] node = " + this.node.name);&#xD; &#xD; for (int
                  i = 0; i &lt; values.size(); i++) {&#xD; Value value =
                  values.getValue(i);&#xD; this.putToken(pin, value);&#xD; }&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens-pin" name="pin"
                type="Syntax-Actions-BasicActions-OutputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens-values"
                name="values" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-putTokens-values-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens" name="getTokens"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens-_ownedComment.0">
                <body>// Precondition: The action execution has fired and the given pin is owned by
                  the action of the action execution.&#xD; // Get any tokens held by the pin
                  activation corresponding to the given input pin and return them &#xD; // (but
                  leave the tokens on the pin).&#xD; &#xD; Debug.println("[getTokens] node =
                  " + this.node.name + ", pin = " + pin.name);&#xD; &#xD; PinActivation
                  pinActivation = this.getPinActivation(pin);&#xD; TokenList tokens =
                  pinActivation.getUnofferedTokens();&#xD; &#xD; ValueList values = new
                  ValueList();&#xD; for (int i = 0; i &lt; tokens.size(); i++) {&#xD;
                  Token token = tokens.getValue(i);&#xD; Value value =
                  ((ObjectToken)token).value;&#xD; if (value != null) {&#xD;
                  values.addValue(value);&#xD; }&#xD; }&#xD; &#xD; return
                  values;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens-pin" name="pin"
                type="Syntax-Actions-BasicActions-InputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-getTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens" name="takeTokens"
              class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-takeTokens">
                <body>// Precondition: The action execution has fired and the given pin is owned by
                  the action of the action execution.&#xD; // Take any tokens held by the pin
                  activation corresponding to the given input pin and return them.&#xD;
                  &#xD; Debug.println("[takeTokens] node = " + this.node.name + ", pin = " +
                  pin.name);&#xD; &#xD; PinActivation pinActivation =
                  this.getPinActivation(pin);&#xD; TokenList tokens =
                  pinActivation.takeUnofferedTokens();&#xD; &#xD; ValueList values = new
                  ValueList();&#xD; for (int i = 0; i &lt; tokens.size(); i++) {&#xD;
                  Token token = tokens.getValue(i);&#xD; Value value =
                  ((ObjectToken)token).value;&#xD; if (value != null) {&#xD;
                  values.addValue(value);&#xD; }&#xD; }&#xD; &#xD; return
                  values;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens-pin" name="pin"
                type="Syntax-Actions-BasicActions-InputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-BasicActions-ActionActivation-takeTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-isSourceFor"
              name="isSourceFor" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isSourceFor-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-isSourceFor">
                <body>// If this action has an outgoing fork node, check that the fork node is the
                  source of the given edge instance.&#xD; &#xD; boolean isSource =
                  false;&#xD; if (this.outgoingEdges.size() &gt; 0) {&#xD; isSource =
                  this.outgoingEdges.getValue(0).target.isSourceFor(edgeInstance);&#xD;
                  }&#xD; &#xD; return isSource;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isSourceFor-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-isSourceFor-edgeInstance"
                name="edgeInstance"
                type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink"
              name="valueParticipatesInLink" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink">
                <body>// Test if the given value participates in the given link.&#xD; &#xD;
                  FeatureValueList linkFeatureValues = link.getFeatureValues();&#xD; &#xD;
                  boolean participates = false;&#xD; int i = 1;&#xD; while (!participates
                  &amp; i &lt;= linkFeatureValues.size()) {&#xD; participates =
                  linkFeatureValues.getValue(i-1).values.getValue(0).equals(value);&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return participates;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink-value"
                name="value" type="Semantics-Classes-Kernel-Value"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-valueParticipatesInLink-link"
                name="link" type="Semantics-Classes-Kernel-Link"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-BasicActions-ActionActivation-makeBooleanValue"
              name="makeBooleanValue" class="Semantics-Actions-BasicActions-ActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-makeBooleanValue-_ownedComment.0"
                annotatedElement="Semantics-Actions-BasicActions-ActionActivation-makeBooleanValue">
                <body>// Make a Boolean value using the built-in Boolean primitive type.&#xD; //
                  [This ensures that Boolean values created internally are the same as the default
                  used for evaluating Boolean literals.]&#xD; &#xD; LiteralBoolean
                  booleanLiteral = new LiteralBoolean();&#xD; booleanLiteral.value =
                  value;&#xD; return
                  (BooleanValue)(this.getExecutionLocus().executor.evaluate(booleanLiteral));&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-makeBooleanValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-BooleanValue" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-BasicActions-ActionActivation-makeBooleanValue-value"
                name="value">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Actions-BasicActions-A_pinActivations_actionActivation"
            name="A_pinActivations_actionActivation" visibility="private"
            memberEnd="Semantics-Actions-BasicActions-ActionActivation-pinActivations Semantics-Actions-BasicActions-PinActivation-actionActivation"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation"
            name="A_callExecutions_callActionActivation" visibility="private"
            memberEnd="Semantics-Actions-BasicActions-CallActionActivation-callExecutions Semantics-Actions-BasicActions-A_callExecutions_callActionActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation-_ownedEnd.0"
              visibility="private" type="Semantics-Actions-BasicActions-CallActionActivation"
              owningAssociation="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation"
              association="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-BasicActions-A_callExecutions_callActionActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Actions-IntermediateActions"
          name="IntermediateActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-IntermediateActions-_packageImport.0"
            importedPackage="Semantics-Actions-BasicActions"
            importingNamespace="Semantics-Actions-IntermediateActions"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-IntermediateActions-_packageImport.1"
            importedPackage="Syntax-Actions-IntermediateActions"
            importingNamespace="Semantics-Actions-IntermediateActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-WriteLinkActionActivation"
            name="WriteLinkActionActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-WriteLinkActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-WriteLinkActionActivation">
              <body>A write link action activation is a link action activation for a write link
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-WriteLinkActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-WriteLinkActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-LinkActionActivation"
              specific="Semantics-Actions-IntermediateActions-WriteLinkActionActivation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation"
            name="WriteStructuralFeatureActionActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation">
              <body>A write structural feature action activation is a structural feature action
                activation for a write structural feature action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation"
              specific="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position"
              name="position"
              class="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position">
                <body>// Return the position (counting from 1) of the first occurance of the given
                  value in the given list at or after the starting index, or 0 if it is not
                  found.&#xD; &#xD; boolean found = false;&#xD; int i =
                  startAt;&#xD; while (!found &amp; i &lt;= list.size()) {&#xD;
                  found = list.getValue(i-1).equals(value);&#xD; i = i + 1;&#xD; }&#xD;
                  &#xD; if (!found) {&#xD; i = 1;&#xD; }&#xD; &#xD; return i -
                  1;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-value"
                name="value" type="Semantics-Classes-Kernel-Value"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-list"
                name="list" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-list-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-list-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation-position-startAt"
                name="startAt">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation"
            name="ValueSpecificationActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation">
              <body>A value specification action activation is an action activation for a value
                specification action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ValueSpecificationActionActivation-doAction">
                <body>// Evaluate the value specification for the action and place the result on the
                  result pin of the action.&#xD; &#xD; ValueSpecificationAction action =
                  (ValueSpecificationAction)(this.node);&#xD; &#xD; Value value =
                  this.getExecutionLocus().executor.evaluate(action.value);&#xD;
                  this.putToken(action.result, value);&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation"
            name="TestIdentityActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-TestIdentityActionActivation">
              <body>A test identity action activation is an action activation for a test identity
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-TestIdentityActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-TestIdentityActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-TestIdentityActionActivation-doAction">
                <body>// Get the values from the first and second input pins and test if they are
                  equal. (Note the equality of references is defined to be that they have identical
                  referents.)&#xD; // If they are equal, place true on the pin execution for the
                  result output pin, otherwise place false.&#xD; &#xD; TestIdentityAction
                  action = (TestIdentityAction)(this.node);&#xD; &#xD; Value firstValue =
                  this.takeTokens(action.first).getValue(0);&#xD; Value secondValue =
                  this.takeTokens(action.second).getValue(0);&#xD; &#xD; Value testResult =
                  this.makeBooleanValue(firstValue.equals(secondValue));&#xD;
                  this.putToken(action.result, testResult);&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation"
            name="StructuralFeatureActionActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation">
              <body>A structural feature action activation is an action activation for a structural
                feature action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation"
              name="getAssociation"
              class="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation-_ownedComment.0">
                <body>// If the structural feature for the action of this activation is an
                  association end,&#xD; // then get the associated association.&#xD;
                  &#xD; Association association = null;&#xD; if (feature instanceof
                  Property) {&#xD; association = ((Property)feature).association;&#xD;
                  }&#xD; &#xD; return association;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation-feature"
                name="feature" type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation-Parameter1"
                name="Parameter1" type="Syntax-Classes-Kernel-Association" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation-Parameter1-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getAssociation-Parameter1-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks"
              name="getMatchingLinks"
              class="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-_ownedComment.0">
                <body>// Get the links of the given binary association whose end opposite &#xD;
                  // to the given end has the given value&#xD; &#xD; Property oppositeEnd =
                  this.getOppositeEnd(association, end);&#xD; &#xD; ExtensionalValueList
                  extent = this.getExecutionLocus().getExtent(association);&#xD; &#xD;
                  LinkList links = new LinkList();&#xD; for (int i = 0; i&lt;extent.size();
                  i++) {&#xD; ExtensionalValue link = extent.getValue(i);&#xD; if
                  (link.getFeatureValue(oppositeEnd).values.getValue(0).equals(oppositeValue))
                  {&#xD; if (!end.multiplicityElement.isOrdered | links.size() == 0) {&#xD;
                  links.addValue((Link)link);&#xD; } else {&#xD; int n =
                  link.getFeatureValue(end).position;&#xD; boolean continueSearching =
                  true;&#xD; int j = 0;&#xD; while (continueSearching &amp; j &lt;
                  links.size()) {&#xD; j = j + 1;&#xD; continueSearching =
                  links.getValue(j-1).getFeatureValue(end).position &lt; n;&#xD; }&#xD;
                  links.addValue(j-1, (Link)link);&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; return links;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-association"
                name="association" type="Syntax-Classes-Kernel-Association"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-end"
                name="end" type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-oppositeValue"
                name="oppositeValue" type="Semantics-Classes-Kernel-Value"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-Parameter1"
                name="Parameter1" type="Semantics-Classes-Kernel-Link" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-Parameter1-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getMatchingLinks-Parameter1-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getOppositeEnd"
              name="getOppositeEnd"
              class="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getOppositeEnd-_ownedComment.0">
                <body>// Get the end of a binary association opposite to the given end.&#xD;
                  &#xD; Property oppositeEnd = association.memberEnd.getValue(0);&#xD; if
                  (oppositeEnd == end) {&#xD; oppositeEnd =
                  association.memberEnd.getValue(1);&#xD; }&#xD; &#xD; return
                  oppositeEnd;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getOppositeEnd-association"
                name="association" type="Syntax-Classes-Kernel-Association"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getOppositeEnd-end"
                name="end" type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation-getOppositeEnd-Parameter1"
                name="Parameter1" type="Syntax-Classes-Kernel-Property" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation"
            name="RemoveStructuralFeatureValueActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation">
              <body>A remove structural feature action activation is a write structural feature
                action activation for a remove structural feature value action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation"
              specific="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-RemoveStructuralFeatureValueActionActivation-doAction">
                <body>// Get the values of the object and value input pins. &#xD; // If the
                  given feature is an association end, then destroy any matching links.&#xD; //
                  Otherwise, if the object input is a structural value, remove values from the given
                  feature.&#xD; // If isRemoveDuplicates is true, then destroy all current
                  matching links or remove all values equal to the input value.&#xD; // If
                  isRemoveDuplicates is false and there is no removeAt input pin, remove any one
                  feature value equal to the input value (if there are any that are equal).&#xD;
                  // If isRemoveDuplicates is false, and there is a removeAt input pin remove the
                  feature value at that position.&#xD; &#xD;
                  RemoveStructuralFeatureValueAction action =
                  (RemoveStructuralFeatureValueAction)(this.node);&#xD; StructuralFeature
                  feature = action.structuralFeature;&#xD; Association association =
                  this.getAssociation(feature);&#xD; &#xD; Value value =
                  this.takeTokens(action.object).getValue(0);&#xD; &#xD; Value inputValue =
                  null;&#xD; if (action.value != null) {&#xD; // NOTE: Multiplicity of the
                  value input pin is required to be 1..1.&#xD; inputValue =
                  this.takeTokens(action.value).getValue(0);&#xD; }&#xD; &#xD; int
                  removeAt = 0;&#xD; if (action.removeAt != null) {&#xD; removeAt =
                  ((UnlimitedNaturalValue)this.takeTokens(action.removeAt).getValue(0)).value.naturalValue;&#xD;
                  }&#xD; &#xD; if (association != null) {&#xD; LinkList links =
                  this.getMatchingLinks(association, feature, value);&#xD; &#xD; if
                  (action.isRemoveDuplicates) {&#xD; for (int i = 0; i &lt; links.size();
                  i++) {&#xD; Link link = links.getValue(i);&#xD; link.destroy();&#xD;
                  }&#xD; &#xD; } else if (action.removeAt == null) {&#xD; // *** If
                  there is more than one matching link, non-deterministically choose one.
                  ***&#xD; if (links.size() &gt; 0) {&#xD; int i =
                  ((ChoiceStrategy)this.getExecutionLocus().factory.getStrategy("choice")).choose(links.size());&#xD;
                  links.getValue(i-1).destroy();&#xD; }&#xD; &#xD; } else {&#xD;
                  boolean notFound = true;&#xD; int i = 1;&#xD; while (notFound &amp; i
                  &lt; links.size()) {&#xD; Link link = links.getValue(i-1);&#xD; if
                  (link.getFeatureValue(feature).position == removeAt) {&#xD; notFound =
                  false;&#xD; link.destroy();&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; } else if (value instanceof StructuredValue) {&#xD; FeatureValue
                  featureValue =
                  ((StructuredValue)value).getFeatureValue(action.structuralFeature);&#xD;
                  &#xD; if (action.isRemoveDuplicates) {&#xD; int j =
                  this.position(inputValue, featureValue.values, 1);&#xD; while (j &gt; 0)
                  {&#xD; featureValue.values.remove(j-1);&#xD; j = this.position(inputValue,
                  featureValue.values, j);&#xD; }&#xD; &#xD; } else if (action.removeAt
                  == null) {&#xD; intList positions = new intList();&#xD; int j =
                  this.position(inputValue, featureValue.values, 1);&#xD; while (j &gt; 0)
                  {&#xD; positions.addValue(j);&#xD; j = this.position(inputValue,
                  featureValue.values, j);&#xD; }&#xD; &#xD; if
                  (positions.size()&gt;0) {&#xD; // *** Nondeterministically choose which
                  value to remove. ***&#xD; int k =
                  ((ChoiceStrategy)this.getExecutionLocus().factory.getStrategy("choice")).choose(positions.size());&#xD;
                  featureValue.values.remove(positions.getValue(k-1) - 1);&#xD; }&#xD;
                  &#xD; } else {&#xD; if (featureValue.values.size()&lt;= removeAt)
                  {&#xD; featureValue.values.remove(removeAt-1);&#xD; }&#xD; }&#xD;
                  }&#xD; &#xD; if (action.result != null) {&#xD;
                  this.putToken(action.result, value);&#xD; }&#xD; &#xD; &#xD;
                </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation"
            name="ReadLinkActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ReadLinkActionActivation">
              <body>A read link action activation is a link action activation for a read link
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-LinkActionActivation"
              specific="Semantics-Actions-IntermediateActions-ReadLinkActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-doAction"
              name="doAction" class="Semantics-Actions-IntermediateActions-ReadLinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ReadLinkActionActivation-doAction">
                <body>// Get the extent, at the current execution locus, of the association to which
                  the action applies.&#xD; // For all links that match the link end data, place
                  the value of the remaining "open" end on the result pin.&#xD; &#xD;
                  ReadLinkAction action = (ReadLinkAction)(this.node);&#xD; LinkEndDataList
                  endDataList = action.endData;&#xD; LinkEndData openEnd = null;&#xD;
                  &#xD; int i = 1;&#xD; while((openEnd == null) &amp; i &lt;=
                  endDataList.size()) {&#xD; if (endDataList.getValue(i-1).value == null)
                  {&#xD; openEnd = endDataList.getValue(i-1);&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; ExtensionalValueList extent =
                  this.getExecutionLocus().getExtent(this.getAssociation());&#xD; &#xD;
                  FeatureValueList featureValues = new FeatureValueList();&#xD; for (int j = 0;
                  j &lt; extent.size(); j++) {&#xD; ExtensionalValue value =
                  extent.getValue(j);&#xD; Link link = (Link)value;&#xD; if
                  (this.linkMatchesEndData(link, endDataList)) {&#xD; FeatureValue featureValue
                  = link.getFeatureValue(openEnd.end);&#xD; if
                  (!openEnd.end.multiplicityElement.isOrdered | featureValues.size() == 0)
                  {&#xD; featureValues.addValue(featureValue);&#xD; } else {&#xD; int n
                  = featureValue.position;&#xD; boolean continueSearching = true;&#xD; int k
                  = 0;&#xD; while (continueSearching &amp; k &lt; featureValues.size())
                  {&#xD; k = k + 1;&#xD; continueSearching =
                  featureValues.getValue(k-1).position &lt; n;&#xD; }&#xD;
                  featureValues.addValue(k-1, featureValue);&#xD; }&#xD; }&#xD;
                  }&#xD; &#xD; &#xD; for (int j = 0; j &lt; featureValues.size();
                  j++) {&#xD; FeatureValue featureValue = featureValues.getValue(j);&#xD;
                  this.putToken(action.result, featureValue.values.getValue(0));&#xD; }&#xD;
                  &#xD; // Now that matching is done, ensure that all tokens on end data input
                  pins&#xD; // are consumed.&#xD; for (int k=0; k&lt;endDataList.size();
                  k++) {&#xD; LinkEndData endData = endDataList.getValue(k);&#xD; if
                  (endData.value != null) {&#xD; this.takeTokens(endData.value);&#xD;
                  }&#xD; }&#xD; &#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation"
            name="ReadSelfActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ReadSelfActionActivation">
              <body>A read self action activation is an action activation for a read self
              action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-ReadSelfActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-doAction"
              name="doAction" class="Semantics-Actions-IntermediateActions-ReadSelfActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ReadSelfActionActivation-doAction">
                <body>// Get the context object of the activity execution containing this action
                  activation and place a reference to it on the result output pin.&#xD;
                  &#xD; // Debug.println("[ReadSelfActionActivation] Start...");&#xD;
                  &#xD; Reference context = new Reference();&#xD; context.referent =
                  this.getExecutionContext();&#xD; &#xD; //
                  Debug.println("[ReadSelfActionActivation] context object = " +
                  context.referent);&#xD; &#xD; OutputPin resultPin =
                  ((ReadSelfAction)(this.node)).result;&#xD; this.putToken(resultPin,
                  context);&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation"
            name="ReadStructuralFeatureActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation">
              <body>A read structural feature action activation is an action activation for a read
                structural feature action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation"
              specific="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ReadStructuralFeatureActionActivation-doAction">
                <body>// Get the value of the object input pin. &#xD; // If the given feature is
                  an association end, then get all values of the that end.&#xD; // for which the
                  opposite end has the object input value and place them on the result pin.&#xD;
                  // Otherwise, if the object input value is a structural value, then get the values
                  &#xD; // of the appropriate feature of the input value and place them on the
                  result output pin.&#xD; &#xD; ReadStructuralFeatureAction action =
                  (ReadStructuralFeatureAction)(this.node);&#xD; StructuralFeature feature =
                  action.structuralFeature;&#xD; Association association =
                  this.getAssociation(feature);&#xD; &#xD; Value value =
                  this.takeTokens(action.object).getValue(0);&#xD; ValueList resultValues = new
                  ValueList();&#xD; &#xD; if (association != null) {&#xD; LinkList links
                  = this.getMatchingLinks(association, feature, value);&#xD; for (int i = 0; i
                  &lt; links.size(); i++) {&#xD; Link link = links.getValue(i);&#xD;
                  resultValues.addValue(link.getFeatureValue(feature).values.getValue(0));&#xD;
                  }&#xD; } else if (value instanceof StructuredValue) {&#xD; //
                  Debug.println("[ReadStructuralFeatureActionActivation] value = " + value +",
                  structural feature = " + feature.name);&#xD; resultValues =
                  ((StructuredValue)value).getFeatureValue(feature).values;&#xD; }&#xD;
                  &#xD; this.putTokens(action.result, resultValues);&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation"
            name="LinkActionActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-LinkActionActivation">
              <body>A link action activation is an action activation for a link action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-LinkActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData"
              name="linkMatchesEndData"
              class="Semantics-Actions-IntermediateActions-LinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData">
                <body>// Test whether the given link matches the given end data.&#xD; &#xD;
                  boolean matches = true;&#xD; int i = 1;&#xD; while (matches &amp; i
                  &lt;= endDataList.size()) {&#xD; matches = this.endMatchesEndData(link,
                  endDataList.getValue(i-1));&#xD; i = i + 1;&#xD; }&#xD; &#xD;
                  return matches;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-link"
                name="link" type="Semantics-Classes-Kernel-Link"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-endDataList"
                name="endDataList" type="Syntax-Actions-IntermediateActions-LinkEndData">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-endDataList-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-linkMatchesEndData-endDataList-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData"
              name="endMatchesEndData"
              class="Semantics-Actions-IntermediateActions-LinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData">
                <body>// Test whether the appropriate end of the given link matches the given end
                  data.&#xD; &#xD; boolean matches = false;&#xD; if (endData.value ==
                  null) {&#xD; matches = true;&#xD; } else {&#xD; Property end =
                  endData.end;&#xD; FeatureValue linkFeatureValue =
                  link.getFeatureValue(end);&#xD; Value endValue =
                  this.getTokens(endData.value).getValue(0);&#xD; if (endData instanceof
                  LinkEndDestructionData) {&#xD; if
                  (!((LinkEndDestructionData)endData).isDestroyDuplicates &amp;
                  !end.multiplicityElement.isUnique &amp; end.multiplicityElement.isOrdered)
                  {&#xD; int destroyAt =
                  ((UnlimitedNaturalValue)(this.getTokens(((LinkEndDestructionData)endData).destroyAt).getValue(0))).value.naturalValue;&#xD;
                  matches = linkFeatureValue.values.getValue(0).equals(endValue) &amp;&amp;
                  linkFeatureValue.position == destroyAt;&#xD; } else {&#xD; matches =
                  linkFeatureValue.values.getValue(0).equals(endValue);&#xD; }&#xD; } else
                  {&#xD; matches =
                  linkFeatureValue.values.getValue(0).equals(endValue);&#xD; }&#xD;
                  }&#xD; &#xD; return matches;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData-link"
                name="link" type="Semantics-Classes-Kernel-Link"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-endMatchesEndData-endData"
                name="endData" type="Syntax-Actions-IntermediateActions-LinkEndData"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-getAssociation"
              name="getAssociation"
              class="Semantics-Actions-IntermediateActions-LinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-getAssociation-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-LinkActionActivation-getAssociation">
                <body>// Get the association for the link action of this activation.&#xD;
                  &#xD; return
                  (Association)(((LinkAction)(this.node)).endData.getValue(0).end.association);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-LinkActionActivation-getAssociation-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Association" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation"
            name="DestroyLinkActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation">
              <body>A destroy link action activation is a write link action activation for a destroy
                link action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-WriteLinkActionActivation"
              specific="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-DestroyLinkActionActivation-doAction">
                <body>// Get the extent, at the current execution locus, of the association for
                  which links are being destroyed.&#xD; // Destroy all links that match the
                  given link end destruction data.&#xD; // For unique ends, or non-unique ends
                  for which isDestroyDuplicates is true, match links with a matching value for that
                  end.&#xD; // For non-unique, ordered ends for which isDestroyDuplicates is
                  false, match links with an end value at the given destroyAt position. [Must a
                  value be given, too, in this case?]&#xD; // For non-unique, non-ordered ends
                  for which isDestroyDuplicates is false, pick one matching link (if any)
                  non-deterministically. [The semantics of this case is not clear from the current
                  spec.]&#xD; &#xD; Debug.println("[doAction]
                  DestroyLinkAction...");&#xD; &#xD; DestroyLinkAction action =
                  (DestroyLinkAction)(this.node);&#xD; LinkEndDestructionDataList
                  destructionDataList = action.endData;&#xD; &#xD; Debug.println("[doAction]
                  end data size = " + destructionDataList.size());&#xD; &#xD; boolean
                  destroyOnlyOne = false;&#xD; int j = 1;&#xD; while (!destroyOnlyOne
                  &amp; j &lt;= destructionDataList.size()) {&#xD;
                  LinkEndDestructionData endData = destructionDataList.getValue(j-1);&#xD;
                  destroyOnlyOne = !endData.end.multiplicityElement.isUnique &amp;
                  !endData.end.multiplicityElement.isOrdered &amp;
                  !endData.isDestroyDuplicates;&#xD; j = j + 1;&#xD; }&#xD; &#xD;
                  LinkEndDataList endDataList = new LinkEndDataList();&#xD; for (int i = 0; i
                  &lt; destructionDataList.size(); i++) {&#xD; LinkEndDestructionData
                  endData = destructionDataList.getValue(i);&#xD; Debug.println("[doAction]
                  Matching end = " + endData.end.name);&#xD;
                  endDataList.addValue(endData);&#xD; }&#xD; &#xD; ExtensionalValueList
                  extent = this.getExecutionLocus().getExtent(this.getAssociation());&#xD;
                  ExtensionalValueList matchingLinks = new ExtensionalValueList();&#xD;
                  &#xD; for (int i = 0; i &lt; extent.size(); i++) {&#xD;
                  ExtensionalValue value = extent.getValue(i);&#xD; Link link =
                  (Link)value;&#xD; if (this.linkMatchesEndData(link, endDataList)) {&#xD;
                  matchingLinks.addValue(link);&#xD; }&#xD; }&#xD; &#xD; // Now that
                  matching is done, ensure that all tokens on end data input pins&#xD; // are
                  consumed.&#xD; for (int i = 0; i &lt; destructionDataList.size(); i++)
                  {&#xD; LinkEndDestructionData endData =
                  destructionDataList.getValue(i);&#xD; Property end = endData.end;&#xD; if
                  (!endData.isDestroyDuplicates&#xD; &amp; !end.multiplicityElement.isUnique
                  &amp; end.multiplicityElement.isOrdered) {&#xD;
                  this.takeTokens(endData.destroyAt);&#xD; }&#xD; Debug.println("[doAction]
                  Consuming tokens for end " + end.name);&#xD;
                  this.takeTokens(endData.value);&#xD; }&#xD; &#xD; if (destroyOnlyOne)
                  {&#xD; // *** If there is more than one matching link, non-deterministically
                  choose one. ***&#xD; if (matchingLinks.size() &gt; 0) {&#xD; int i =
                  ((ChoiceStrategy)this.getExecutionLocus().factory.getStrategy("choice")).choose(matchingLinks.size());&#xD;
                  matchingLinks.getValue(i-1).destroy();&#xD; }&#xD; } else {&#xD; for
                  (int i = 0; i &lt; matchingLinks.size(); i++) {&#xD; ExtensionalValue
                  matchingLink = matchingLinks.getValue(i);&#xD;
                  matchingLink.destroy();&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation"
            name="DestroyObjectActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation">
              <body>A destroy object action activation is an action activation for a destroy object
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-doAction">
                <body>// Get the value on the target input pin.&#xD; // If the value is not a
                  reference, then the action has no effect. Otherwise, do the following.&#xD; //
                  If isDestroyLinks is true, destroy all links in which the referent
                  participates.&#xD; // If isDestroyOwnedObjects is true, destroy all objects
                  owned by the referent via composition links.&#xD; // Destroy the referent
                  object.&#xD; &#xD; DestroyObjectAction action =
                  (DestroyObjectAction)(this.node);&#xD; Value value =
                  this.takeTokens(action.target).getValue(0);&#xD; &#xD;
                  this.destroyObject(value, action.isDestroyLinks,
                  action.isDestroyOwnedObjects);&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject"
              name="destroyObject"
              class="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject">
                <body>// If the given value is a reference, then destroy the referenced object, per
                  the given destroy action attribute values.&#xD; &#xD; //
                  Debug.println("[destroyObject] object = " + value.objectId());&#xD; &#xD;
                  if (value instanceof Reference) {&#xD; Reference reference =
                  (Reference)value;&#xD; &#xD; if (isDestroyLinks | isDestroyOwnedObjects)
                  {&#xD; Debug.println("[destroyObject] Destroying links...");&#xD;
                  ExtensionalValueList extensionalValues =
                  this.getExecutionLocus().extensionalValues;&#xD; for (int i = 0; i &lt;
                  extensionalValues.size(); i++) {&#xD; ExtensionalValue extensionalValue =
                  extensionalValues.getValue(i);&#xD; if (extensionalValue instanceof Link)
                  {&#xD; Link link = (Link)extensionalValue;&#xD; if
                  (this.valueParticipatesInLink(reference, link)) {&#xD; if (isDestroyLinks |
                  this.objectIsComposite(reference, link)) {&#xD; //
                  Debug.println("[destroyObject] Destroying link " + link.objectId());&#xD;
                  link.destroy();&#xD; }&#xD; }&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; if (isDestroyOwnedObjects) {&#xD; Debug.println("[destroyObject]
                  Destroying owned objects...");&#xD; FeatureValueList objectFeatureValues =
                  reference.getFeatureValues();&#xD; for (int i = 0; i &lt;
                  objectFeatureValues.size(); i++) {&#xD; FeatureValue featureValue =
                  objectFeatureValues.getValue(i);&#xD; if
                  (((Property)featureValue.feature).aggregation == AggregationKind.composite)
                  {&#xD; ValueList values = featureValue.values;&#xD; for (int j = 0; j
                  &lt; values.size(); j++) {&#xD; Value ownedValue =
                  values.getValue(j);&#xD; this.destroyObject(ownedValue, isDestroyLinks,
                  isDestroyOwnedObjects);&#xD; }&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; reference.destroy();&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject-value"
                name="value" type="Semantics-Classes-Kernel-Value"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject-isDestroyLinks"
                name="isDestroyLinks">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-destroyObject-isDestroyOwnedObjects"
                name="isDestroyOwnedObjects">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite"
              name="objectIsComposite"
              class="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite">
                <body>// Test whether the given reference participates in the given link as a
                  composite.&#xD; &#xD; FeatureValueList linkFeatureValues =
                  link.getFeatureValues();&#xD; &#xD; boolean isComposite = false;&#xD;
                  int i = 1;&#xD; while (!isComposite &amp; i &lt;=
                  linkFeatureValues.size()) {&#xD; FeatureValue featureValue =
                  linkFeatureValues.getValue(i-1);&#xD; if
                  (!featureValue.values.getValue(0).equals(reference) &amp;&#xD;
                  ((Property)featureValue.feature).aggregation == AggregationKind.composite)
                  {&#xD; isComposite = true;&#xD; }&#xD; }&#xD; &#xD; return
                  isComposite;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite-reference"
                name="reference" type="Semantics-Classes-Kernel-Reference"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-IntermediateActions-DestroyObjectActionActivation-objectIsComposite-link"
                name="link" type="Semantics-Classes-Kernel-Link"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation"
            name="CreateLinkActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-CreateLinkActionActivation">
              <body>A create link action activation is a write link action activation for a create
                link action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-WriteLinkActionActivation"
              specific="Semantics-Actions-IntermediateActions-CreateLinkActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-CreateLinkActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-CreateLinkActionActivation-doAction">
                <body>// Get the extent at the current execution locus of the association for which
                  a link is being created.&#xD; // Destroy all links that have a value for any
                  end for which isReplaceAll is true.&#xD; // Create a new link for the
                  association, at the current locus, with the given end data values, &#xD; //
                  inserted at the given insertAt position (for ordered ends).&#xD; &#xD;
                  CreateLinkAction action = (CreateLinkAction)(this.node);&#xD;
                  LinkEndCreationDataList endDataList = action.endData;&#xD; &#xD;
                  Association linkAssociation = this.getAssociation();&#xD; ExtensionalValueList
                  extent = this.getExecutionLocus().getExtent(linkAssociation);&#xD; &#xD;
                  Link oldLink = null;&#xD; for (int i = 0; i &lt; extent.size(); i++)
                  {&#xD; ExtensionalValue value = extent.getValue(i);&#xD; Link link =
                  (Link)value;&#xD; &#xD; boolean noMatch = true;&#xD; int j =
                  1;&#xD; while (noMatch &amp; j &lt;= endDataList.size()) {&#xD;
                  LinkEndCreationData endData = endDataList.getValue(j-1);&#xD; if
                  (endData.isReplaceAll &amp; this.endMatchesEndData(link, endData)) {&#xD;
                  oldLink = link;&#xD; link.destroy();&#xD; noMatch = false;&#xD;
                  }&#xD; j = j + 1;&#xD; }&#xD; }&#xD; &#xD; Link newLink = new
                  Link();&#xD; newLink.type = linkAssociation;&#xD; &#xD; // This
                  necessary when setting a feature value with an insertAt position&#xD;
                  newLink.locus = this.getExecutionLocus(); &#xD; &#xD; for (int i = 0; i
                  &lt; endDataList.size(); i++) {&#xD; LinkEndCreationData endData =
                  endDataList.getValue(i);&#xD; &#xD; int insertAt;&#xD; if
                  (endData.insertAt == null) {&#xD; insertAt = 0;&#xD; } else {&#xD;
                  insertAt =
                  ((UnlimitedNaturalValue)(this.takeTokens(endData.insertAt).getValue(0))).value.naturalValue;&#xD;
                  if (oldLink != null) {&#xD; if (oldLink.getFeatureValue(endData.end).position
                  &lt; insertAt) {&#xD; insertAt = insertAt - 1;&#xD; }&#xD;
                  }&#xD; }&#xD; newLink.setFeatureValue(endData.end,
                  this.takeTokens(endData.value), insertAt);&#xD; }&#xD; &#xD;
                  this.getExecutionLocus().add(newLink);&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation"
            name="CreateObjectActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-CreateObjectActionActivation">
              <body>A create object action activation is an action activation for a create object
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-CreateObjectActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-CreateObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-CreateObjectActionActivation-doAction">
                <body>// Create an object with the given classifier (which must be a class) as its
                  type, at the same locus as the action activation.&#xD; // Place a reference to
                  the object on the result pin of the action.&#xD; &#xD; CreateObjectAction
                  action = (CreateObjectAction)(this.node);&#xD; &#xD; Reference reference =
                  new Reference();&#xD; reference.referent =
                  this.getExecutionLocus().instantiate((Class_)(action.classifier));&#xD;
                  &#xD; this.putToken(action.result, reference);&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation"
            name="ClearAssociationActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation">
              <body>A clear association action activation is an action activation for a clear
                association action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ClearAssociationActionActivation-doAction">
                <body>// Get the extent, at the current execution locus, of the given
                  association.&#xD; // Read the object input pin. Destroy all links in which the
                  object participates.&#xD; &#xD; ClearAssociationAction action =
                  (ClearAssociationAction)(this.node);&#xD; &#xD; ExtensionalValueList
                  extent = this.getExecutionLocus().getExtent(action.association);&#xD; Value
                  objectValue = this.takeTokens(action.object).getValue(0);&#xD; &#xD; for
                  (int i = 0; i &lt; extent.size(); i++) {&#xD; Link link =
                  (Link)(extent.getValue(i));&#xD; if (this.valueParticipatesInLink(objectValue,
                  link)) {&#xD; link.destroy();&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation"
            name="ClearStructuralFeatureActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation">
              <body>A clear structural feature action activation is a structural feature action
                activation for a clear structural feature action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-StructuralFeatureActionActivation"
              specific="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-ClearStructuralFeatureActionActivation-doAction">
                <body>// Get the value of the object input pin. &#xD; // If the given feature is
                  an association end, then &#xD; // destroy all links that have the object input
                  on the opposite end.&#xD; // Otherwise, if the object input is a structured
                  value, then&#xD; // set the appropriate feature of the input value to be
                  empty.&#xD; &#xD; ClearStructuralFeatureAction action =
                  (ClearStructuralFeatureAction)(this.node);&#xD; StructuralFeature feature =
                  action.structuralFeature;&#xD; Association association =
                  this.getAssociation(feature);&#xD; &#xD; Value value =
                  this.takeTokens(action.object).getValue(0);&#xD; &#xD; if (association !=
                  null) {&#xD; LinkList links = this.getMatchingLinks(association, feature,
                  value);&#xD; for (int i = 0; i &lt; links.size(); i++) {&#xD; Link
                  link = links.getValue(i);&#xD; link.destroy();&#xD; }&#xD; } else if
                  (value instanceof StructuredValue) {&#xD;
                  ((StructuredValue)value).setFeatureValue(action.structuralFeature, new
                  ValueList(), 0);&#xD; }&#xD; &#xD; if (action.result != null)
                  {&#xD; this.putToken(action.result, value);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation"
            name="AddStructuralFeatureValueActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-_ownedComment.0">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; &#xD; </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-_ownedComment.1"
              annotatedElement="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation">
              <body>An add structural feature action value activation is a write structural feature
                action activation for an add structural feature value action.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-_generalization.0"
              general="Semantics-Actions-IntermediateActions-WriteStructuralFeatureActionActivation"
              specific="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-IntermediateActions-AddStructuralFeatureValueActionActivation-doAction">
                <body>// Get the values of the object and value input pins. &#xD; // If the
                  given feature is an association end, then create a link between the object and
                  value inputs.&#xD; // Otherwise, if the object input is a structural value,
                  then add a value to the values for the feature.&#xD; // If isReplaceAll is
                  true, first remove all current matching links or feature values.&#xD; // If
                  isReplaceAll is false and there is an insertAt pin, insert the value at the
                  appropriate position.&#xD; &#xD; AddStructuralFeatureValueAction action =
                  (AddStructuralFeatureValueAction)(this.node);&#xD; StructuralFeature feature =
                  action.structuralFeature;&#xD; Association association =
                  this.getAssociation(feature);&#xD; &#xD; Value value =
                  this.takeTokens(action.object).getValue(0);&#xD; ValueList inputValues =
                  this.takeTokens(action.value);&#xD; &#xD; // NOTE: Multiplicity of the
                  value input pin is required to be 1..1.&#xD; Value inputValue =
                  inputValues.getValue(0);&#xD; &#xD; int insertAt = 0;&#xD; if
                  (action.insertAt != null) {&#xD; insertAt =
                  ((UnlimitedNaturalValue)this.takeTokens(action.insertAt).getValue(0)).value.naturalValue;&#xD;
                  }&#xD; &#xD; if (association != null) {&#xD; LinkList links =
                  this.getMatchingLinks(association, feature, value);&#xD; &#xD; Property
                  oppositeEnd = this.getOppositeEnd(association, feature);&#xD; int position =
                  0;&#xD; if (oppositeEnd.multiplicityElement.isOrdered) {&#xD; position =
                  -1;&#xD; }&#xD; &#xD; if (action.isReplaceAll) {&#xD; for (int i =
                  0; i &lt; links.size(); i++) {&#xD; Link link =
                  links.getValue(i);&#xD; link.destroy();&#xD; }&#xD; } else if
                  (feature.multiplicityElement.isUnique) {&#xD; for (int i=0; i &lt;
                  links.size(); i++) {&#xD; Link link = links.getValue(i);&#xD; FeatureValue
                  featureValue = link.getFeatureValue(feature);&#xD; if
                  (featureValue.values.getValue(0).equals(inputValue)) {&#xD; position =
                  link.getFeatureValue(oppositeEnd).position;&#xD; if (insertAt &gt; 0
                  &amp; featureValue.position &lt; insertAt) {&#xD; insertAt = insertAt
                  - 1;&#xD; }&#xD; link.destroy();&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; Link newLink = new Link();&#xD; newLink.type = association;&#xD;
                  &#xD; // This necessary when setting a feature value with an insertAt
                  position&#xD; newLink.locus = this.getExecutionLocus(); &#xD; &#xD;
                  newLink.setFeatureValue(feature, inputValues, insertAt);&#xD; &#xD;
                  ValueList oppositeValues = new ValueList();&#xD;
                  oppositeValues.addValue(value);&#xD; newLink.setFeatureValue(oppositeEnd,
                  oppositeValues, position);&#xD; &#xD; newLink.locus.add(newLink);&#xD;
                  &#xD; } else if (value instanceof StructuredValue) {&#xD; StructuredValue
                  structuredValue = (StructuredValue)value;&#xD; &#xD; if
                  (action.isReplaceAll) {&#xD; structuredValue.setFeatureValue(feature,
                  inputValues, 0);&#xD; } else {&#xD; FeatureValue featureValue =
                  structuredValue.getFeatureValue(feature);&#xD; &#xD; if
                  (featureValue.values.size() &gt; 0 &amp; insertAt == 0 ) {&#xD; // ***
                  If there is no insertAt pin, then the structural feature must be unordered, and
                  the insertion position is immaterial. ***&#xD; insertAt =
                  ((ChoiceStrategy)this.getExecutionLocus().factory.getStrategy("choice")).choose(featureValue.values.size());&#xD;
                  }&#xD; &#xD; if (feature.multiplicityElement.isUnique) {&#xD; //
                  Remove any existing value that duplicates the input value&#xD; int j =
                  position(inputValue, featureValue.values, 1);&#xD; if (j &gt; 0)
                  {&#xD; featureValue.values.remove(j-1);&#xD; if (insertAt &gt; 0
                  &amp; j &lt; insertAt) {&#xD; insertAt = insertAt - 1;&#xD;
                  }&#xD; }&#xD; }&#xD; &#xD; if (insertAt &lt;= 0) { // Note:
                  insertAt = -1 indicates an unlimited value of "*"&#xD;
                  featureValue.values.addValue(inputValue);&#xD; } else {&#xD;
                  featureValue.values.addValue(insertAt - 1, inputValue);&#xD; }&#xD;
                  }&#xD; }&#xD; &#xD; if (action.result != null) {&#xD;
                  this.putToken(action.result, value);&#xD; }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Actions-CompleteActions"
          name="CompleteActions">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-CompleteActions-_packageImport.0"
            importedPackage="Semantics-Actions-BasicActions"
            importingNamespace="Semantics-Actions-CompleteActions"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Actions-CompleteActions-_packageImport.1"
            importedPackage="Syntax-Actions-CompleteActions"
            importingNamespace="Semantics-Actions-CompleteActions"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation"
            name="StartClassifierBehaviorActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation">
              <body>A start classifier behavior action activation is an action activation for a
                start classifier behavior action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-StartClassifierBehaviorActionActivation-doAction">
                <body>// Get the value on the object input pin. If it is not a reference, then do
                  nothing.&#xD; // Start the classifier behavior of the referent object for the
                  classifier given as the type of the object input pin.&#xD; // If the object
                  input pin has no type, then start the classifier behaviors of all types of the
                  referent object. [The required behavior in this case is not clear from the
                  spec.]&#xD; &#xD; StartClassifierBehaviorAction action =
                  (StartClassifierBehaviorAction)(this.node);&#xD; &#xD; Value object =
                  this.takeTokens(action.object).getValue(0);&#xD; &#xD; if (object
                  instanceof Reference) {&#xD;
                  ((Reference)object).startBehavior((Class_)(action.object.typedElement.type), new
                  ParameterValueList());&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation"
            name="StartObjectBehaviorActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation">
              <body>A start behavior action activation is an action activation for a start behavior
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-InvocationActionActivation"
              specific="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-StartObjectBehaviorActionActivation-doAction">
                <body>// Get the value on the object input pin. If it is not a reference, then do
                  nothing.&#xD; // Start the behavior of the referent object for the classifier
                  given as the type of the object input pin, with parameter values taken from the
                  argument input pins.&#xD; // If the object input pin has no type, then start
                  the classifier behaviors of all types of the referent object.&#xD; &#xD;
                  StartObjectBehaviorAction action =
                  (StartObjectBehaviorAction)(this.node);&#xD; &#xD; Value object =
                  this.takeTokens(action.object).getValue(0);&#xD; &#xD; if (object
                  instanceof Reference) {&#xD; Class_ type =
                  (Class_)(action.object.typedElement.type);&#xD; InputPinList argumentPins =
                  action.argument;&#xD; &#xD; ParameterValueList inputs = new
                  ParameterValueList();&#xD; &#xD; if (type != null) {&#xD; Behavior
                  behavior;&#xD; &#xD; if (type instanceof Behavior) {&#xD; behavior =
                  (Behavior)type;&#xD; } else {&#xD; behavior =
                  type.classifierBehavior;&#xD; }&#xD; &#xD; if (behavior != null)
                  {&#xD; ParameterList parameters = behavior.ownedParameter;&#xD; &#xD;
                  int pinNumber = 1;&#xD; int i = 1;&#xD; while (i &lt;=
                  parameters.size()) {&#xD; Parameter parameter =
                  parameters.getValue(i-1);&#xD; int j = pinNumber;&#xD; if
                  (parameter.direction == ParameterDirectionKind.in |&#xD; parameter.direction
                  == ParameterDirectionKind.inout) {&#xD; ParameterValue parameterValue = new
                  ParameterValue();&#xD; parameterValue.parameter = parameter;&#xD;
                  parameterValue.values = this.takeTokens(argumentPins.getValue(j-1));&#xD;
                  inputs.addValue(parameterValue);&#xD; j = j + 1;&#xD; }&#xD; pinNumber
                  = j;&#xD; i = i + 1;&#xD; }&#xD; }&#xD; }&#xD; &#xD;
                  ((Reference)object).startBehavior(type, inputs);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation"
            name="ReduceActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-ReduceActionActivation">
              <body>A reduce action activation is an action activation for a reduce action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-ReduceActionActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution"
              name="currentExecution" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              association="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution">
                <body>The current execution of the reducer behavior.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-doAction"
              name="doAction" class="Semantics-Actions-CompleteActions-ReduceActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReduceActionActivation-doAction">
                <body>// Get the values of the collection input pin.&#xD; // If the input pin
                  has no values, then do nothing. Otherwise, do the following.&#xD; //
                  Repeatedly invoke the reducer behavior on successive pairs to reduce the
                  collection to a single value, and place that value on the result pin.&#xD; //
                  To invoke the reducer behavior, compile it to create an execution, make the
                  execution the current execution, place the appropriate values on its input
                  parameters, and execute it.&#xD; &#xD; ReduceAction action =
                  (ReduceAction)(this.node);&#xD; &#xD; ValueList values =
                  this.takeTokens(action.collection);&#xD; &#xD; if (values.size() &gt;
                  0) {&#xD; ParameterList parameters = action.reducer.ownedParameter;&#xD;
                  Parameter input1 = null;&#xD; Parameter input2 = null;&#xD; Parameter
                  output = null;&#xD; &#xD; int i = 1;&#xD; while (i &lt;=
                  parameters.size()) {&#xD; Parameter parameter =
                  parameters.getValue(i-1);&#xD; if (parameter.direction ==
                  ParameterDirectionKind.in) {&#xD; if (input1 != null) {&#xD; input1 =
                  parameter;&#xD; }&#xD; else {&#xD; input2 = parameter;&#xD;
                  }&#xD; }&#xD; else if (parameter.direction == ParameterDirectionKind.out)
                  {&#xD; output = parameter;&#xD; }&#xD; i = i + 1;&#xD; }&#xD;
                  &#xD; ParameterValue parameterValue1 = new ParameterValue();&#xD;
                  parameterValue1.parameter = input1;&#xD; parameterValue1.values = new
                  ValueList();&#xD;
                  parameterValue1.values.addValue(values.getValue(0));&#xD; &#xD; int j =
                  2;&#xD; while (j &lt;= values.size()) {&#xD; this.currentExecution =
                  this.getExecutionLocus().factory.createExecution(action.reducer,
                  this.getExecutionContext());&#xD; &#xD;
                  this.currentExecution.setParameterValue(parameterValue1);&#xD; &#xD;
                  ParameterValue parameterValue2 = new ParameterValue();&#xD;
                  parameterValue2.parameter = input2;&#xD; parameterValue2.values = new
                  ValueList();&#xD;
                  parameterValue2.values.addValue(values.getValue(j-1));&#xD;
                  this.currentExecution.setParameterValue(parameterValue2);&#xD; &#xD;
                  this.currentExecution.execute();&#xD; &#xD; parameterValue1 =
                  this.currentExecution.getParameterValue(output);&#xD; &#xD; j = j +
                  1;&#xD; }&#xD; &#xD; this.putTokens(action.result,
                  parameterValue1.values);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-terminate"
              name="terminate" class="Semantics-Actions-CompleteActions-ReduceActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReduceActionActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReduceActionActivation-terminate">
                <body>// If there is a current execution, terminate it. Then terminate
                  self.&#xD; &#xD; if (this.currentExecution != null) {&#xD;
                  this.currentExecution.terminate();&#xD; }&#xD; &#xD;
                  super.terminate();&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation"
            name="ReadIsClassifiedObjectActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation">
              <body>A read-is-classified object activation is an action activation for a
                read-is-classified object action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-doAction">
                <body>// Get the value on the object input pin and determine if it is classified by
                  the classifier specified in the action.&#xD; // If the isDirect attribute of
                  the action is false, then place true on the result output pin if the input object
                  has the specified classifier or of one its (direct or indirect) descendants as a
                  type.&#xD; // If the isDirect attribute of the action is true, then place true
                  on the result output pin if the input object has the specified classifier as a
                  type.&#xD; // Otherwise place false on the result output pin.&#xD;
                  &#xD; ReadIsClassifiedObjectAction action =
                  (ReadIsClassifiedObjectAction)(this.node);&#xD; &#xD; Value input =
                  this.takeTokens(action.object).getValue(0);&#xD; ClassifierList types =
                  input.getTypes();&#xD; &#xD; boolean result = false;&#xD; int i =
                  1;&#xD; while (!result &amp; i &lt;= types.size()) {&#xD;
                  Classifier type = types.getValue(i-1);&#xD; &#xD; if (type ==
                  action.classifier) {&#xD; result = true;&#xD; }&#xD; else if
                  (!action.isDirect) {&#xD; result = this.checkAllParents(type,
                  action.classifier);&#xD; }&#xD; &#xD; i = i + 1;&#xD; }&#xD;
                  &#xD; ValueList values = new ValueList();&#xD;
                  values.addValue(this.makeBooleanValue(result));&#xD; &#xD;
                  this.putTokens(action.result, values);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents"
              name="checkAllParents"
              class="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents">
                <body>// Check if the given classifier matches any of the direct or indirect
                  ancestors of a given type.&#xD; &#xD; ClassifierList directParents =
                  type.general;&#xD; boolean matched = false;&#xD; int i = 1;&#xD; while
                  (!matched &amp; i &lt;= directParents.size()) {&#xD; Classifier
                  directParent = directParents.getValue(i-1);&#xD; if (directParent ==
                  classifier) {&#xD; matched = true;&#xD; } else {&#xD; matched =
                  this.checkAllParents(directParent, classifier);&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return matched;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents-type"
                name="type" type="Syntax-Classes-Kernel-Classifier"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-ReadIsClassifiedObjectActionActivation-checkAllParents-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation"
            name="ReclassifyObjectActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation">
              <body>A reclassify object activation is an action activation for a reclassify object
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-doAction"
              name="doAction"
              class="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReclassifyObjectActionActivation-doAction">
                <body>// Get the value of the object input pin. If it is not a reference, then do
                  nothing. Otherwise, do the following.&#xD; // Remove all types from the
                  referent object that are in the set of old classifiers but not the set of new
                  classifiers (or just all types that are not new classifiers, if isReplaceAll is
                  true).&#xD; // Remove the feature values from the referent object for all
                  classifiers that are removed.&#xD; // Add all new classifiers as types of the
                  referent object that are not already types.&#xD; // Add (empty) feature values
                  to the referent object for the structural features of all added
                  classifiers.&#xD; &#xD; ReclassifyObjectAction action =
                  (ReclassifyObjectAction)(this.node);&#xD; ClassifierList newClassifiers =
                  action.newClassifier;&#xD; ClassifierList oldClassifiers =
                  action.oldClassifier;&#xD; &#xD; Value input =
                  this.takeTokens(action.object).getValue(0);&#xD; &#xD; if (input
                  instanceof Reference) {&#xD; Object_ object =
                  ((Reference)input).referent;&#xD; &#xD; int i = 1;&#xD; while (i
                  &lt;= object.types.size()) {&#xD; Class_ type =
                  object.types.getValue(i-1);&#xD; &#xD; boolean toBeRemoved =
                  true;&#xD; int j = 1;&#xD; while (toBeRemoved &amp; j &lt;=
                  newClassifiers.size()) {&#xD; toBeRemoved = (type !=
                  newClassifiers.getValue(j-1));&#xD; j = j + 1;&#xD; }&#xD; &#xD;
                  if (toBeRemoved &amp; !action.isReplaceAll) {&#xD; boolean notInOld =
                  true;&#xD; int k = 1;&#xD; while (notInOld &amp; k &lt;=
                  oldClassifiers.size()) {&#xD; notInOld = (type !=
                  oldClassifiers.getValue(k-1));&#xD; k = k + 1;&#xD; }&#xD; toBeRemoved
                  = !notInOld;&#xD; }&#xD; &#xD; if (toBeRemoved) {&#xD;
                  object.types.removeValue(i-1);&#xD; object.removeFeatureValues(type);&#xD;
                  } else {&#xD; i = i + 1;&#xD; }&#xD; }&#xD; &#xD; for (int n =
                  0; n &lt; newClassifiers.size(); n++) {&#xD; Classifier classifier =
                  newClassifiers.getValue(n);&#xD; &#xD; boolean toBeAdded = true;&#xD;
                  int j = 1;&#xD; while (toBeAdded &amp; j &lt;= object.types.size())
                  {&#xD; toBeAdded = (classifier != object.types.getValue(j-1));&#xD; j = j
                  + 1;&#xD; }&#xD; &#xD; if (toBeAdded) {&#xD;
                  object.types.addValue((Class_)classifier);&#xD; NamedElementList members =
                  classifier.member;&#xD; for (int k = 0; k &lt; members.size(); k++)
                  {&#xD; NamedElement member = members.getValue(k);&#xD; if (member
                  instanceof StructuralFeature) {&#xD;
                  object.setFeatureValue((StructuralFeature)member, new ValueList(), 0);&#xD;
                  }&#xD; }&#xD; }&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation"
            name="ReadExtentActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-ReadExtentActionActivation">
              <body>A read extent action activation is an action activation for a read extent
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-ReadExtentActionActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation-doAction"
              name="doAction" class="Semantics-Actions-CompleteActions-ReadExtentActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-ReadExtentActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-ReadExtentActionActivation-doAction">
                <body>// Get the extent, at the current execution locus, of the classifier (which
                  must be a class) identified in the action. &#xD; // Place references to the
                  resulting set of objects on the result pin.&#xD; &#xD; ReadExtentAction
                  action = (ReadExtentAction)(this.node);&#xD; ExtensionalValueList objects =
                  this.getExecutionLocus().getExtent(action.classifier);&#xD; &#xD; //
                  Debug.println("[doAction] " + action.classifier.name + " has " + objects.size() +
                  " instance(s).");&#xD; &#xD; ValueList references = new
                  ValueList();&#xD; for (int i = 0; i &lt; objects.size(); i++) {&#xD;
                  Value object = objects.getValue(i);&#xD; Reference reference = new
                  Reference();&#xD; reference.referent = (Object_)object;&#xD;
                  references.addValue(reference);&#xD; }&#xD; &#xD;
                  this.putTokens(action.result, references);&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation"
            name="AcceptEventActionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <body>An accept event action activation is an action activation for an accept event
                action.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Actions-CompleteActions-AcceptEventActionActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter"
              name="eventAccepter" visibility="public"
              type="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter"
              association="Semantics-Actions-CompleteActions-A_actionActivation_eventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter">
                <body>If the accept event action activation is waiting for an event, then this is
                  the accepter it has registered for the event.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-waiting"
              name="waiting" visibility="public">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-run" name="run"
              class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-run-_ownedComment.0">
                <body>// Create an event accepter and initialize waiting to false.&#xD;
                  &#xD; super.run();&#xD; &#xD; this.eventAccepter = new
                  AcceptEventActionEventAccepter();&#xD; this.eventAccepter.actionActivation =
                  this;&#xD; &#xD; this.waiting = false;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire"
              name="fire" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire">
                <body>// Register the event accepter for this accept event action activation with
                  the context object of the enclosing activity execution&#xD; // and wait for an
                  event to be accepted.&#xD; &#xD; Debug.println("[fire] Action " +
                  this.node.name + "...");&#xD; &#xD;
                  this.getExecutionContext().register(this.eventAccepter);&#xD; this.waiting =
                  true;&#xD; &#xD; this.firing = false;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-isReady"
              name="isReady" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-isReady-_ownedComment.0">
                <body>// An accept event action activiation is ready to fire only if it is not
                  already waiting for an event.&#xD; &#xD; boolean ready;&#xD; if
                  (this.waiting) {&#xD; ready = false;&#xD; } else {&#xD; ready =
                  super.isReady();&#xD; }&#xD; &#xD; return ready;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-isReady-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-doAction"
              name="doAction" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation-doAction">
                <body>// Do nothing. [This will never be called.]&#xD; &#xD; return;</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-accept"
              name="accept" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-accept-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation-accept">
                <body>// Accept a signal occurance for the given signal instance.&#xD; // If the
                  action does not unmarshall, then place the signal instance on the result pin, if
                  any.&#xD; // If the action does unmarshall, then get the feature values of the
                  signal instance, and place the values for each feature on the corresponding output
                  pin.&#xD; // Concurrently fire all output pins while offering a single control
                  token.&#xD; // If there are no incoming edges, then re-register this accept
                  event action execution with the context object.&#xD; &#xD;
                  AcceptEventAction action = (AcceptEventAction)(this.node);&#xD; OutputPinList
                  resultPins = action.result;&#xD; &#xD; Debug.println("[accept] action = "
                  + action.name + ", signalinstance = " + signalInstance);&#xD; &#xD; if
                  (this.running) {&#xD; if (!action.isUnmarshall) {&#xD; ValueList result =
                  new ValueList();&#xD; result.addValue(signalInstance);&#xD; if
                  (resultPins.size() &gt; 0) {&#xD; this.putTokens(resultPins.getValue(0),
                  result);&#xD; }&#xD; } else {&#xD; FeatureValueList featureValues =
                  signalInstance.getFeatureValues();&#xD; for (int i = 0; i &lt;
                  featureValues.size(); i++) {&#xD; FeatureValue featureValue =
                  featureValues.getValue(i);&#xD; OutputPin resultPin =
                  resultPins.getValue(i);&#xD; this.putTokens(resultPin,
                  featureValue.values);&#xD; }&#xD; }&#xD; &#xD;
                  this.sendOffers();&#xD; &#xD; this.waiting = false;&#xD; &#xD;
                  Debug.println("[fire] Checking if " + this.node.name + " should fire
                  again...");&#xD; // if (this.isReady()) {&#xD; // this.fire();&#xD; //
                  }&#xD; this.receiveOffer();&#xD; }&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-accept-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-match"
              name="match" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-match-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionActivation-match">
                <body>// Return true if the given signal instance matches a trigger of the accept
                  action of this activation.&#xD; &#xD; AcceptEventAction action =
                  (AcceptEventAction)(this.node);&#xD; TriggerList triggers =
                  action.trigger;&#xD; Signal signal = signalInstance.type;&#xD; &#xD;
                  boolean matches = false;&#xD; int i = 1;&#xD; while (!matches &amp; i
                  &lt;= triggers.size()) {&#xD; matches =
                  ((SignalEvent)(triggers.getValue(i-1).event)).signal == signal;&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return matches;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-match-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-match-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-terminate"
              name="terminate" class="Semantics-Actions-CompleteActions-AcceptEventActionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionActivation-terminate-_ownedComment.0">
                <body>// Terminate this action and unregister its event accepter.&#xD; &#xD;
                  super.terminate();&#xD; &#xD; if (this.waiting) {&#xD;
                  this.getExecutionContext().unregister(this.eventAccepter);&#xD; this.waiting =
                  false;&#xD; }</body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter"
            name="AcceptEventActionEventAccepter">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-_ownedComment.0"
              annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter">
              <body>An accept event action event accepter handles signal reception events on the
                behalf of a specific accept event action activation.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-_generalization.0"
              general="Semantics-CommonBehaviors-Communications-EventAccepter"
              specific="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation"
              name="actionActivation" visibility="public"
              type="Semantics-Actions-CompleteActions-AcceptEventActionActivation"
              association="Semantics-Actions-CompleteActions-A_actionActivation_eventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation">
                <body>The accept event action activation on behalf of which this event accepter is
                  waiting.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-accept"
              name="accept" class="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-accept-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-accept">
                <body>Accept a signal occurance for the given signal instance.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-accept-_ownedComment.1">
                <body>// Accept a signal occurance for the given signal instance.&#xD; //
                  Forward the signal occuranceto the action activation.&#xD; &#xD;
                  this.actionActivation.accept(signalInstance);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-accept-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match"
              name="match" class="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match-_ownedComment.0"
                annotatedElement="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match">
                <body>Determine if the given signal instance matches a trigger of the accept action
                  of the action activation.</body>
              </ownedComment>
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match-_ownedComment.1">
                <body>// Return true if the given signal instance matches a trigger of the accept
                  action of the action activation.&#xD; &#xD; return
                  this.actionActivation.match(signalInstance);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-match-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Actions-CompleteActions-A_actionActivation_eventAccepter"
            name="A_actionActivation_eventAccepter" visibility="private"
            memberEnd="Semantics-Actions-CompleteActions-AcceptEventActionEventAccepter-actionActivation Semantics-Actions-CompleteActions-AcceptEventActionActivation-eventAccepter"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation"
            name="A_currentExecution_reduceActionActivation" visibility="private"
            memberEnd="Semantics-Actions-CompleteActions-ReduceActionActivation-currentExecution Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation-_ownedEnd.0"
              visibility="private" type="Semantics-Actions-CompleteActions-ReduceActionActivation"
              owningAssociation="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation"
              association="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Actions-CompleteActions-A_currentExecution_reduceActionActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Activities" name="Activities">
        <packagedElement xmi:type="uml:Package"
          xmi:id="Semantics-Activities-CompleteStructuredActivities"
          name="CompleteStructuredActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-_packageImport.0"
            importedPackage="Syntax-Activities-CompleteStructuredActivities"
            importingNamespace="Semantics-Activities-CompleteStructuredActivities"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-_packageImport.1"
            importedPackage="Semantics-Actions-BasicActions"
            importingNamespace="Semantics-Activities-CompleteStructuredActivities"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation"
            name="StructuredActivityNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <body>A structured activity node activation is an action activation for an action that
                is a structured activity node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-_ownedComment.1">
              <body>import java.util.*;&#xD; &#xD; import fUML.Syntax.*;&#xD; import
                fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-activationGroup"
              name="activationGroup"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
              aggregation="composite"
              association="Semantics-Activities-CompleteStructuredActivities-A_activationGroup_containingNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-activationGroup-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-activationGroup">
                <body>The group of activations of the activity nodes contained in the structured
                  activity node.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-doAction"
              name="doAction"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-doAction-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-doAction">
                <body>// If the structured activity node has mustIsolate=true, then carry out its
                  behavior with isolation.&#xD; // Otherwise just activate it normally.&#xD;
                  &#xD; if (((StructuredActivityNode)(this.node)).mustIsolate) {&#xD;
                  _beginIsolation();&#xD; this.doStructuredActivity();&#xD;
                  _endIsolation();&#xD; } else {&#xD; this.doStructuredActivity();&#xD;
                  }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-doStructuredActivity"
              name="doStructuredActivity"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-doStructuredActivity-_ownedComment.0">
                <body>// Run all activations of contained nodes. When this is complete,
                  return.&#xD; // (This is the default behavior for a structured activity node
                  used simply as a group. It is overridden for the execution of conditional and loop
                  nodes.)&#xD; &#xD; Action action = (Action)(this.node);&#xD; &#xD;
                  // *** Concurrently send offers from all input pins. ***&#xD; InputPinList
                  inputPins = action.input;&#xD; for (Iterator i = inputPins.iterator();
                  i.hasNext();) {&#xD; InputPin inputPin = (InputPin)i.next();&#xD;
                  PinActivation pinActivation = this.getPinActivation(inputPin);&#xD;
                  pinActivation.sendUnofferedTokens();&#xD; }&#xD; &#xD;
                  this.activationGroup.run(this.activationGroup.nodeActivations);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-terminate"
              name="terminate"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-terminate">
                <body>// Terminate the execution of all contained node activations (which completes
                  the performance of the structured activity node activation).&#xD; &#xD;
                  this.activationGroup.terminateAll();&#xD; super.terminate();</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation"
              name="getNodeActivation"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation">
                <body>// If this structured activity node activation is not for the given node, then
                  check if there is an activation for the node in the activation group.&#xD;
                  &#xD; ActivityNodeActivation thisActivation =
                  super.getNodeActivation(node);&#xD; &#xD; ActivityNodeActivation
                  activation = null;&#xD; if (thisActivation != null) {&#xD; activation =
                  thisActivation;&#xD; } else if (this.activationGroup != null) {&#xD;
                  activation = this.activationGroup.getNodeActivation(node);&#xD; }&#xD;
                  &#xD; return activation;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation-ReturnResult-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getNodeActivation-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList"
              name="makeActivityNodeList"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList">
                <body>// Return an activity node list containing the given list of executable nodes
                  &#xD; // and any pins that they own.&#xD; &#xD; ActivityNodeList
                  activityNodes = new ActivityNodeList();&#xD; &#xD; for (int i = 0; i
                  &lt; nodes.size(); i++) {&#xD; ActivityNode node =
                  nodes.getValue(i);&#xD; activityNodes.addValue(node);&#xD; &#xD; if
                  (node instanceof Action) {&#xD; Action action = (Action)node;&#xD;
                  &#xD; InputPinList inputPins = action.input;&#xD; for (int j = 0; j
                  &lt; inputPins.size(); j++) {&#xD; InputPin inputPin =
                  inputPins.getValue(j);&#xD; activityNodes.addValue(inputPin);&#xD;
                  }&#xD; &#xD; OutputPinList outputPins = action.output;&#xD; for (int j
                  = 0; j &lt; outputPins.size(); j++) {&#xD; OutputPin outputPin =
                  outputPins.getValue(j);&#xD; activityNodes.addValue(outputPin);&#xD;
                  }&#xD; }&#xD; }&#xD; &#xD; return activityNodes;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-nodes"
                name="nodes" type="Syntax-Activities-CompleteStructuredActivities-ExecutableNode">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-nodes-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-nodes-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-ReturnResult"
                name="ReturnResult" type="Syntax-Activities-IntermediateActivities-ActivityNode"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-makeActivityNodeList-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues"
              name="getPinValues"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues">
                <body>// Return the values of the tokens on the pin activation corresponding to the
                  given pin in the internal activation group for this node activation.&#xD;
                  &#xD; PinActivation pinActivation =
                  (PinActivation)(this.activationGroup.getNodeActivation(pin));&#xD; TokenList
                  tokens = pinActivation.getTokens();&#xD; &#xD; ValueList values = new
                  ValueList();&#xD; for (int i = 0; i &lt; tokens.size(); i++) {&#xD;
                  Token token = tokens.getValue(i);&#xD; Value value =
                  ((ObjectToken)token).value;&#xD; if (value != null) {&#xD;
                  values.addValue(value);&#xD; }&#xD; }&#xD; &#xD; return
                  values;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues-pin"
                name="pin" type="Syntax-Actions-BasicActions-OutputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-getPinValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues"
              name="putPinValues"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues">
                <body>// Place tokens for the given values on the pin activation corresponding to
                  the given output pin on the internal activation group for this node
                  activation.&#xD; &#xD; PinActivation pinActivation =
                  (PinActivation)(this.activationGroup.getNodeActivation(pin));&#xD; &#xD;
                  for (int i = 0; i &lt; values.size(); i++) {&#xD; Value value =
                  values.getValue(i);&#xD; ObjectToken token = new ObjectToken();&#xD;
                  token.value = value;&#xD; pinActivation.addToken(token);&#xD; }&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues-pin"
                name="pin" type="Syntax-Actions-BasicActions-OutputPin"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues-values"
                name="values" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-putPinValues-values-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createNodeActivations"
              name="createNodeActivations"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createNodeActivations">
                <body>// Create an activation group and create node activations for all the nodes
                  within the structured activity node.&#xD; &#xD;
                  super.createNodeActivations();&#xD; &#xD; this.activationGroup = new
                  ActivityNodeActivationGroup();&#xD;
                  this.activationGroup.containingNodeActivation = this;&#xD;
                  this.activationGroup.createNodeActivations(((StructuredActivityNode)(this.node)).node);&#xD;
                  &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createEdgeInstances"
              name="createEdgeInstances"
              class="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createEdgeInstances-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-createEdgeInstances">
                <body>// Create instances for all edges owned by this node.&#xD; &#xD;
                  this.activationGroup.createEdgeInstances(((StructuredActivityNode)(this.node)).edge);&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation"
            name="LoopNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <body>A loop node activation is a structured activity node activation for a node that
                is a loop node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-_generalization.0"
              general="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation"
              specific="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-bodyOutputLists"
              name="bodyOutputLists" visibility="public"
              type="Semantics-Activities-CompleteStructuredActivities-Values"
              aggregation="composite"
              association="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-bodyOutputLists-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-bodyOutputLists-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-doStructuredActivity"
              name="doStructuredActivity"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-doStructuredActivity-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-doStructuredActivity">
                <body>// Set the initial values for the body outputs to the values of the loop
                  variable input pins.&#xD; // If isTestedFirst is true, then repeatedly run the
                  test part and the body part of the loop, copying values from the body outputs to
                  the loop variables.&#xD; // If isTestedFirst is false, then repeatedly run the
                  body part and the test part of the loop, copying values from the body outputs to
                  the loop variables.&#xD; // When the test fails, copy the values of the body
                  outputs to the loop outputs.&#xD; // [Note: The body outputs are used for the
                  loop outputs, rather than the loop variables, since values on the loop variables
                  may be consumed when running the test for the last time.]&#xD; &#xD;
                  LoopNode loopNode = (LoopNode)(this.node);&#xD; InputPinList
                  loopVariableInputs = loopNode.loopVariableInput;&#xD; OutputPinList
                  loopVariables = loopNode.loopVariable;&#xD; OutputPinList resultPins =
                  loopNode.result;&#xD; &#xD; ValuesList bodyOutputLists =
                  this.bodyOutputLists;&#xD; for (int i = 0; i &lt;
                  loopVariableInputs.size(); i++) {&#xD; InputPin loopVariableInput =
                  loopVariableInputs.getValue(i);&#xD; Values bodyOutputList = new
                  Values();&#xD; bodyOutputList.values =
                  this.takeTokens(loopVariableInput);&#xD;
                  this.bodyOutputLists.addValue(bodyOutputList);&#xD; }&#xD; &#xD;
                  boolean continuing = true;&#xD; do {&#xD; &#xD; // Set loop variable
                  values&#xD; this.runLoopVariables();&#xD; for (int i = 0; i &lt;
                  loopVariables.size(); i++) {&#xD; OutputPin loopVariable =
                  loopVariables.getValue(i);&#xD; Values bodyOutputList =
                  bodyOutputLists.getValue(i);&#xD; ValueList values =
                  bodyOutputList.values;&#xD; this.putPinValues(loopVariable, values);&#xD;
                  ((OutputPinActivation)this.activationGroup.getNodeActivation(loopVariable)).sendUnofferedTokens();&#xD;
                  }&#xD; &#xD; // Run all the non-executable, non-pin nodes in the
                  conditional node.&#xD; ActivityNodeActivationList nodeActivations =
                  this.activationGroup.nodeActivations;&#xD; ActivityNodeActivationList
                  nonExecutableNodeActivations = new ActivityNodeActivationList();&#xD; for (int
                  i = 0; i &lt; nodeActivations.size(); i++) {&#xD; ActivityNodeActivation
                  nodeActivation = nodeActivations.getValue(i);&#xD; if (!(nodeActivation.node
                  instanceof ExecutableNode | nodeActivation.node instanceof Pin)) {&#xD;
                  nonExecutableNodeActivations.addValue(nodeActivation);&#xD; }&#xD;
                  }&#xD; this.activationGroup.run(nonExecutableNodeActivations);&#xD;
                  &#xD; // Run the loop&#xD; if (loopNode.isTestedFirst) {&#xD;
                  continuing = this.runTest();&#xD; if (continuing) {&#xD;
                  this.runBody();&#xD; }&#xD; }&#xD; else {&#xD;
                  this.runBody();&#xD; continuing = this.runTest();&#xD; }&#xD;
                  &#xD; this.activationGroup.terminateAll();&#xD; &#xD;
                  Debug.println("[doStructuredActivity] " + (continuing? "Continuing.":
                  "Done."));&#xD; &#xD; } while (continuing);&#xD; &#xD; for (int i
                  = 0; i &lt; bodyOutputLists.size(); i++) {&#xD; Values bodyOutputList =
                  bodyOutputLists.getValue(i);&#xD; OutputPin resultPin =
                  resultPins.getValue(i);&#xD; this.putTokens(resultPin,
                  bodyOutputList.values);&#xD; }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runTest"
              name="runTest"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runTest-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runTest">
                <body>// Run the test part of the loop node for this node activation.&#xD; //
                  Return the value on the decider pin.&#xD; &#xD; Debug.println("[runTest]
                  Running test...");&#xD; &#xD; LoopNode loopNode =
                  (LoopNode)(this.node);&#xD; &#xD;
                  this.activationGroup.runNodes(this.makeActivityNodeList(loopNode.test));&#xD;
                  &#xD; ValueList values = this.getPinValues(loopNode.decider);&#xD;
                  &#xD; // If there is no decider value, treat it as false.&#xD; boolean
                  decision = false;&#xD; if (values.size() &gt; 0) { &#xD; decision =
                  ((BooleanValue)(values.getValue(0))).value;&#xD; }&#xD; &#xD;
                  Debug.println("[runTest] " + (decision? "Test succeeded.": "Test
                  failed."));&#xD; &#xD; return decision;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runTest-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runBody"
              name="runBody"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runBody-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runBody">
                <body>// Run the body part of the loop node for this node activation and save the
                  body outputs.&#xD; &#xD; Debug.println("[runBody] Running
                  body...");&#xD; &#xD; LoopNode loopNode = (LoopNode)this.node;&#xD;
                  &#xD;
                  this.activationGroup.runNodes(this.makeActivityNodeList(loopNode.bodyPart));&#xD;
                  &#xD; OutputPinList bodyOutputs = loopNode.bodyOutput;&#xD; ValuesList
                  bodyOutputLists = this.bodyOutputLists;&#xD; for (int i = 0; i &lt;
                  bodyOutputs.size(); i++) {&#xD; OutputPin bodyOutput =
                  bodyOutputs.getValue(i);&#xD; Values bodyOutputList =
                  bodyOutputLists.getValue(i);&#xD; bodyOutputList.values =
                  this.getPinValues(bodyOutput);&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runLoopVariables"
              name="runLoopVariables"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runLoopVariables-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-runLoopVariables">
                <body>// Run the loop variable pins of the loop node for this node
                  activation.&#xD; &#xD;
                  this.activationGroup.runNodes(this.makeLoopVariableList());&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-createNodeActivations"
              name="createNodeActivations"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-createNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-createNodeActivations">
                <body>// In addition to creating activations for contained nodes, create activations
                  for any loop variables.&#xD; &#xD; super.createNodeActivations();&#xD;
                  this.activationGroup.createNodeActivations(this.makeLoopVariableList());&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList"
              name="makeLoopVariableList"
              class="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList">
                <body>// Return an activity node list containing the loop variable pins for the loop
                  node of this activation.&#xD; &#xD; LoopNode loopNode =
                  (LoopNode)(this.node);&#xD; ActivityNodeList nodes = new
                  ActivityNodeList();&#xD; &#xD; OutputPinList loopVariables =
                  loopNode.loopVariable;&#xD; for (int i = 0; i &lt; loopVariables.size();
                  i++) {&#xD; OutputPin loopVariable = loopVariables.getValue(i);&#xD;
                  nodes.addValue(loopVariable);&#xD; }&#xD; &#xD; return nodes;&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList-ReturnResult"
                name="ReturnResult" type="Syntax-Activities-IntermediateActivities-ActivityNode"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-makeLoopVariableList-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation"
            name="ConditionalNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation">
              <body>A conditional node activation is a structured activity node activation for a
                node that is a conditional node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-_generalization.0"
              general="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation"
              specific="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations"
              name="clauseActivations"
              type="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
              aggregation="composite"
              association="Semantics-Activities-CompleteStructuredActivities-A_clauseActivations_conditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations">
                <body>The activations for each clause in the conditional node for this node
                  activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses"
              name="selectedClauses" visibility="public"
              type="Syntax-Activities-CompleteStructuredActivities-Clause"
              association="Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses">
                <body>The set of clauses which meet the conditions to have their bodies
                activated.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-doStructuredActivity"
              name="doStructuredActivity"
              class="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-doStructuredActivity-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-doStructuredActivity">
                <body>// Run all the non-executable, non-pin nodes in the conditional node.&#xD;
                  // Activate all clauses in the conditional node and pass control to those that are
                  ready (i.e., have no predecessors).&#xD; // If one or more clauses have
                  succeeded in being selected, choose one non-deterministically and run its body,
                  then copy the outputs of that clause to the output pins of the node.&#xD;
                  &#xD; ConditionalNode node = (ConditionalNode)(this.node);&#xD; &#xD;
                  ActivityNodeActivationList nodeActivations =
                  this.activationGroup.nodeActivations;&#xD; ActivityNodeActivationList
                  nonExecutableNodeActivations = new ActivityNodeActivationList();&#xD; for (int
                  i = 0; i &lt; nodeActivations.size(); i++) {&#xD; ActivityNodeActivation
                  nodeActivation = nodeActivations.getValue(i);&#xD; if (!(nodeActivation.node
                  instanceof ExecutableNode | nodeActivation.node instanceof Pin)) {&#xD;
                  nonExecutableNodeActivations.addValue(nodeActivation);&#xD; }&#xD;
                  }&#xD; &#xD;
                  this.activationGroup.run(nonExecutableNodeActivations);&#xD; &#xD;
                  this.clauseActivations.clear();&#xD; ClauseList clauses =
                  node.clause;&#xD; for (int i = 0; i &lt; clauses.size(); i++) {&#xD;
                  Clause clause = clauses.getValue(i);&#xD; ClauseActivation clauseActivation =
                  new ClauseActivation();&#xD; clauseActivation.clause = clause;&#xD;
                  clauseActivation.conditionalNodeActivation = this;&#xD;
                  this.clauseActivations.addValue(clauseActivation);&#xD; }&#xD; &#xD;
                  this.selectedClauses.clear();&#xD; &#xD; ClauseActivationList
                  readyClauseActivations = new ClauseActivationList();&#xD; for (int i = 0; i
                  &lt; this.clauseActivations.size(); i++) {&#xD; ClauseActivation
                  clauseActivation = this.clauseActivations.getValue(i);&#xD;
                  Debug.println("[doStructuredActivity] clauseActivations[" + i + "] = " +
                  clauseActivation);&#xD; if (clauseActivation.isReady()) {&#xD;
                  Debug.println("[doStructuredActivity] Clause activation is ready.");&#xD;
                  readyClauseActivations.addValue(clauseActivation);&#xD; }&#xD; }&#xD;
                  &#xD; // *** Give control to all ready clauses concurrently. ***&#xD; for
                  (Iterator i = readyClauseActivations.iterator(); i.hasNext() ;) {&#xD;
                  ClauseActivation clauseActivation = (ClauseActivation)i.next();&#xD;
                  Debug.println("[doStructuredActivity] Giving control to " + clauseActivation +
                  "...");&#xD; clauseActivation.receiveControl();&#xD; }&#xD; &#xD;
                  if (this.selectedClauses.size() &gt; 0 &amp; this.isRunning()) {&#xD;
                  Debug.println("[doStructuredActivity] " + this.selectedClauses.size() + "
                  clause(s) selected.");&#xD; &#xD; // *** If multiple clauses are selected,
                  choose one non-deterministically. ***&#xD; int i =
                  ((ChoiceStrategy)this.getExecutionLocus().factory.getStrategy("choice")).choose(this.selectedClauses.size());&#xD;
                  Clause selectedClause = this.selectedClauses.getValue(i-1);&#xD; &#xD;
                  Debug.println("[doStructuredActivity] Running selectedClauses[" + i + "] = " +
                  selectedClause);&#xD; &#xD; for (int j = 0; j &lt; clauses.size();
                  j++) {&#xD; Clause clause = clauses.getValue(j);&#xD; if (clause !=
                  selectedClause) {&#xD; ExecutableNodeList testNodes = clause.test;&#xD;
                  for (int k = 0; k &lt; testNodes.size(); k++) {&#xD; ExecutableNode
                  testNode = testNodes.getValue(k);&#xD;
                  this.activationGroup.getNodeActivation(testNode).terminate();&#xD; }&#xD;
                  }&#xD; }&#xD; &#xD;
                  this.activationGroup.runNodes(this.makeActivityNodeList(selectedClause.body));&#xD;
                  &#xD; OutputPinList resultPins = node.result;&#xD; OutputPinList
                  bodyOutputPins = selectedClause.bodyOutput;&#xD; for (int k = 0; k &lt;
                  resultPins.size(); k++) {&#xD; OutputPin resultPin =
                  resultPins.getValue(k);&#xD; OutputPin bodyOutputPin =
                  bodyOutputPins.getValue(k);&#xD; this.putTokens(resultPin,
                  this.getPinValues(bodyOutputPin));&#xD; }&#xD; }&#xD; &#xD;
                  this.activationGroup.terminateAll();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-getClauseActivation"
              name="getClauseActivation"
              class="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-getClauseActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-getClauseActivation">
                <body>// Get the clause activation corresponding to the given clause.&#xD;
                  &#xD; // Debug.println("[getClauseActivation] clause = " + clause);&#xD;
                  &#xD; ClauseActivation selectedClauseActivation = null;&#xD; int i =
                  1;&#xD; while ((selectedClauseActivation == null) &amp; i &lt;=
                  this.clauseActivations.size()) {&#xD; ClauseActivation clauseActivation =
                  this.clauseActivations.getValue(i-1);&#xD; //
                  Debug.println("[getClauseActivations] clauseActivations[" + i + "].clause = " +
                  clauseActivation.clause);&#xD; if (clauseActivation.clause == clause)
                  {&#xD; selectedClauseActivation = clauseActivation;&#xD; }&#xD; i = i
                  + 1;&#xD; }&#xD; &#xD; return selectedClauseActivation;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-getClauseActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-getClauseActivation-clause"
                name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-runTest"
              name="runTest"
              class="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-runTest-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-runTest">
                <body>// Run the test for the given clause.&#xD; &#xD; if (this.isRunning())
                  {&#xD;
                  this.activationGroup.runNodes(this.makeActivityNodeList(clause.test));&#xD;
                  }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-runTest-clause"
                name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectBody"
              name="selectBody"
              class="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectBody-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectBody">
                <body>// Add the clause to the list of selected clauses.&#xD; &#xD;
                  this.selectedClauses.addValue(clause);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectBody-clause"
                name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
            name="ClauseActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <body>A clause activation defines the behavior of a clause within the context of a
                specific activation of the conditional node containing the clause.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-conditionalNodeActivation"
              name="conditionalNodeActivation"
              type="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation"
              association="Semantics-Activities-CompleteStructuredActivities-A_clauseActivations_conditionalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-conditionalNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-conditionalNodeActivation">
                <body>The activation of the conditional node that contains the clause for this
                  clause activation.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-clause"
              name="clause" type="Syntax-Activities-CompleteStructuredActivities-Clause"
              association="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-clause-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-clause-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-receiveControl"
              name="receiveControl"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-receiveControl-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-receiveControl">
                <body>// If all predecessors to the clause for this activation have run their tests
                  and failed, then run the test for this clause.&#xD; // If the test succeeds,
                  then terminate any other clauses that may be running and run the body of this
                  clause.&#xD; // If the test fails, then pass control to successor
                  clauses.&#xD; &#xD; Debug.println("[receiveControl] clauseActivation = " +
                  this);&#xD; &#xD; if (this.isReady()) {&#xD;
                  Debug.println("[receiveControl] Running test...");&#xD;
                  this.runTest();&#xD; &#xD; BooleanValue decision =
                  this.getDecision();&#xD; &#xD; // Note that the decision may be null if
                  the test was terminated before completion.&#xD; if (decision != null)
                  {&#xD; if (decision.value == true) {&#xD; Debug.println("[receiveControl]
                  Test succeeded.");&#xD; this.selectBody();&#xD; } else {&#xD;
                  Debug.println("[receiveControl] Test failed.");&#xD; &#xD;
                  ClauseActivationList successors = this.getSuccessors();&#xD; &#xD; // ***
                  Give control to all successors concurrently. ***&#xD; for (Iterator i =
                  successors.iterator(); i.hasNext();) {&#xD; ClauseActivation successor =
                  (ClauseActivation)i.next();&#xD; successor.receiveControl();&#xD;
                  }&#xD; }&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-isReady"
              name="isReady"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-isReady">
                <body>// Test if all predecessors to this clause activation have failed.&#xD;
                  &#xD; ClauseActivationList predecessors = this.getPredecessors();&#xD;
                  &#xD; boolean ready = true;&#xD; int i = 1;&#xD; while (ready
                  &amp; i &lt;= predecessors.size()) { &#xD; ClauseActivation
                  predecessor = predecessors.getValue(i-1);&#xD; BooleanValue decisionValue =
                  predecessor.getDecision();&#xD; &#xD; // Note that the decision will be
                  null if the predecessor clause has not run yet.&#xD; if (decisionValue ==
                  null) {&#xD; ready = false;&#xD; } else {&#xD; ready =
                  !decisionValue.value;&#xD; }&#xD; &#xD; i = i + 1;&#xD; }&#xD;
                  &#xD; return ready;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-runTest"
              name="runTest"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-runTest-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-runTest">
                <body>// Run the test of the clause for this clause activation.&#xD; &#xD;
                  this.conditionalNodeActivation.runTest(this.clause);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-selectBody"
              name="selectBody"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-selectBody-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-selectBody">
                <body>// Select the body of the clause for this clause activation.&#xD;
                  &#xD; this.conditionalNodeActivation.selectBody(this.clause);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision"
              name="getDecision"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision">
                <body>// Get the value (if any) on the decider pin of the clause for this clause
                  activation.&#xD; &#xD; ValueList deciderValues =
                  this.conditionalNodeActivation.getPinValues(this.clause.decider);&#xD;
                  &#xD; BooleanValue deciderValue = null;&#xD; if (deciderValues.size()
                  &gt; 0) {&#xD; deciderValue =
                  (BooleanValue)(deciderValues.getValue(0));&#xD; }&#xD; &#xD; return
                  deciderValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-BooleanValue" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getDecision-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors"
              name="getPredecessors"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors">
                <body>// Return the clause activations for the predecessors of the clause for this
                  clause activation.&#xD; &#xD; ClauseActivationList predecessors = new
                  ClauseActivationList();&#xD; &#xD; ClauseList predecessorClauses =
                  this.clause.predecessorClause;&#xD; for (int i = 0; i &lt;
                  predecessorClauses.size(); i++) {&#xD; Clause predecessorClause =
                  predecessorClauses.getValue(i);&#xD;
                  predecessors.addValue(this.conditionalNodeActivation.getClauseActivation(predecessorClause));&#xD;
                  }&#xD; &#xD; return predecessors;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getPredecessors-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors"
              name="getSuccessors"
              class="Semantics-Activities-CompleteStructuredActivities-ClauseActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors-_ownedComment.0"
                annotatedElement="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors">
                <body>// Return the clause activations for the successors of the clause for this
                  clause activation.&#xD; &#xD; ClauseActivationList successors = new
                  ClauseActivationList();&#xD; &#xD; ClauseList successorClauses =
                  this.clause.successorClause;&#xD; for (int i = 0; i &lt;
                  successorClauses.size(); i++) {&#xD; Clause successorClause =
                  successorClauses.getValue(i);&#xD;
                  successors.addValue(this.conditionalNodeActivation.getClauseActivation(successorClause));&#xD;
                  }&#xD; &#xD; return successors;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-getSuccessors-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation"
            name="A_clause_clauseActivation" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-ClauseActivation-clause Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-CompleteStructuredActivities-ClauseActivation"
              owningAssociation="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation"
              association="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_clause_clauseActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_clauseActivations_conditionalNodeActivation"
            name="A_clauseActivations_conditionalNodeActivation" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-clauseActivations Semantics-Activities-CompleteStructuredActivities-ClauseActivation-conditionalNodeActivation"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation"
            name="A_selectedClauses_clauseActivation" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation-selectedClauses Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-CompleteStructuredActivities-ConditionalNodeActivation"
              owningAssociation="Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation"
              association="Semantics-Activities-CompleteStructuredActivities-A_selectedClauses_clauseActivation"
            />
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_activationGroup_containingNodeActivation"
            name="A_activationGroup_containingNodeActivation" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation-activationGroup Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation"/>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-Values" name="Values">
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-Values-values" name="values"
              visibility="public" type="Semantics-Classes-Kernel-Value"
              association="Semantics-Activities-CompleteStructuredActivities-A_values_values">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-Values-values-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-Values-values-_lowerValue"
              />
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation"
            name="A_bodyOutputLists_loopNodeActivation" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation-bodyOutputLists Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-CompleteStructuredActivities-LoopNodeActivation"
              owningAssociation="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation"
              association="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_bodyOutputLists_loopNodeActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-CompleteStructuredActivities-A_values_values"
            name="A_values_values" visibility="private"
            memberEnd="Semantics-Activities-CompleteStructuredActivities-Values-values Semantics-Activities-CompleteStructuredActivities-A_values_values-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-CompleteStructuredActivities-A_values_values-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-CompleteStructuredActivities-Values"
              owningAssociation="Semantics-Activities-CompleteStructuredActivities-A_values_values"
              association="Semantics-Activities-CompleteStructuredActivities-A_values_values">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_values_values-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-CompleteStructuredActivities-A_values_values-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Activities-IntermediateActivities"
          name="IntermediateActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-IntermediateActivities-_packageImport.0"
            importedPackage="Syntax-Activities-IntermediateActivities"
            importingNamespace="Semantics-Activities-IntermediateActivities"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-IntermediateActivities-_packageImport.1"
            importedPackage="Semantics-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-Activities-IntermediateActivities"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-Token" name="Token"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-Token">
              <body>A token is an individual element of data or control that may flow across an
                activity edge.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-holder" name="holder"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              association="Semantics-Activities-IntermediateActivities-A_heldTokens_holder">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-holder-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-holder-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-transfer" name="transfer"
              class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-transfer-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-transfer">
                <body>// if this token does not have any holder, make the given holder its
                  holder.&#xD; // Otherwise, remove this token from its holder and return a copy
                  of it transfered to a new holder.&#xD; &#xD; Token token = this;&#xD;
                  if (this.holder != null) {&#xD; this.withdraw();&#xD; token =
                  this.copy();&#xD; }&#xD; &#xD; token.holder = holder;&#xD; return
                  token;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-transfer-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-transfer-holder"
                name="holder"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-withdraw" name="withdraw"
              class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-withdraw-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-withdraw">
                <body>// Remove this token from its holder, withdrawing any offers for it.&#xD;
                  &#xD; if (!this.isWithdrawn()) {&#xD; // Debug.println("[withdraw] Taking
                  token with value = " + this.getValue());&#xD;
                  this.holder.removeToken(this);&#xD; this.holder = null;&#xD; }&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-equals" name="equals"
              isAbstract="true" class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-equals-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-equals">
                <body>Test if this token is equal to another token.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-equals-other" name="other"
                type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-copy" name="copy"
              isAbstract="true" class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-copy-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-copy">
                <body>// Make a copy of this token.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-isWithdrawn"
              name="isWithdrawn" class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-isWithdrawn-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-isWithdrawn">
                <body>// Test if this token has been withdrawn.&#xD; &#xD; return
                  this.holder == null;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-isWithdrawn-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-isControl" name="isControl"
              isAbstract="true" class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-isControl-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-isControl">
                <body>Test whether this is a control token.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-isControl-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Token-getValue" name="getValue"
              isAbstract="true" class="Semantics-Activities-IntermediateActivities-Token">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-getValue-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-Token-getValue">
                <body>Get the value associated with this token (if any).</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Token-getValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-Token-getValue-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-Token-getValue-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-Offer" name="Offer">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-_ownedComment.0">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-_ownedComment.1"
              annotatedElement="Semantics-Activities-IntermediateActivities-Offer">
              <body>An offer is a group of tokens offered together. The grouping of offered tokens
                into offers usually does not matter for how the tokens may be accepted. However,
                control and object tokens may become grouped together in the same offer due to a
                join node that has both incoming control and object flows. In this case, the control
                tokens are implicitly accepted once all the object tokens in the same offer have
                been accepted.</body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-offeredTokens"
              name="offeredTokens" type="Semantics-Activities-IntermediateActivities-Token"
              association="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-offeredTokens-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-offeredTokens-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-countOfferedValues"
              name="countOfferedValues" class="Semantics-Activities-IntermediateActivities-Offer">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-countOfferedValues-_ownedComment.0">
                <body>// Return the number of values being offered on object tokens.&#xD; //
                  Remove any tokens that have already been withdrawn and don't include them in the
                  count.&#xD; &#xD; this.removeWithdrawnTokens();&#xD; &#xD; int
                  count = 0;&#xD; for (int i = 0; i &lt; this.offeredTokens.size(); i++)
                  {&#xD; if (this.offeredTokens.getValue(i).getValue() != null) {&#xD; count
                  = count + 1;&#xD; }&#xD; }&#xD; &#xD; return count;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-countOfferedValues-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-getOfferedTokens"
              name="getOfferedTokens" class="Semantics-Activities-IntermediateActivities-Offer">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-getOfferedTokens-_ownedComment.0">
                <body>// Get the offered tokens, removing any that have been withdrawn.&#xD;
                  &#xD; this.removeWithdrawnTokens();&#xD; &#xD; TokenList tokens = new
                  TokenList();&#xD; TokenList offeredTokens = this.offeredTokens;&#xD; for
                  (int i = 0; i &lt; this.offeredTokens.size() ; i++) {&#xD; Token
                  offeredToken = offeredTokens.getValue(i);&#xD; //
                  Debug.println("[getOfferedTokens] token value = " +
                  offeredToken.getValue());&#xD; tokens.addValue(offeredToken);&#xD;
                  }&#xD; &#xD; return tokens;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-getOfferedTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-Offer-getOfferedTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-Offer-getOfferedTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-removeOfferedValues"
              name="removeOfferedValues" class="Semantics-Activities-IntermediateActivities-Offer">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-removeOfferedValues-_ownedComment.0">
                <body>// Remove the given number of non-null object tokens from those in this
                  offer.&#xD; &#xD; int n = count;&#xD; int i = 1;&#xD; while (n
                  &gt; 0) {&#xD; if (this.offeredTokens.getValue(i-1).getValue() != null)
                  {&#xD; this.offeredTokens.removeValue(i-1);&#xD; } else {&#xD; i = i +
                  1;&#xD; }&#xD; n = n - 1;&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-removeOfferedValues-count"
                name="count">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-removeWithdrawnTokens"
              name="removeWithdrawnTokens" class="Semantics-Activities-IntermediateActivities-Offer">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-removeWithdrawnTokens-_ownedComment.0">
                <body>// Remove any tokens that have already been consumed.&#xD; &#xD;
                  TokenList offeredTokens = this.offeredTokens;&#xD; int i = 1;&#xD; while
                  (i &lt;= this.offeredTokens.size()) {&#xD; if
                  (this.offeredTokens.getValue(i-1).isWithdrawn()) {&#xD;
                  this.offeredTokens.remove(i-1);&#xD; i = i - 1;&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-Offer-hasTokens" name="hasTokens"
              class="Semantics-Activities-IntermediateActivities-Offer">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-hasTokens-_ownedComment.0">
                <body>// Check whether this offer has any tokens that have not been
                  withdrawn.&#xD; &#xD; this.removeWithdrawnTokens();&#xD; return
                  this.offeredTokens.size() &gt; 0;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-Offer-hasTokens-Parameter1"
                name="Parameter1" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken" name="ObjectToken">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken">
              <body>An object token represents the passing of data along an object flow edge.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-Token"
              specific="Semantics-Activities-IntermediateActivities-ObjectToken"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-value" name="value"
              type="Semantics-Classes-Kernel-Value" aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_value_objectToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-value-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken-value">
                <body>The value carried by this token. A token may have no value, in which case it
                  is a "null token".</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-value-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-value-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-equals" name="equals"
              class="Semantics-Activities-IntermediateActivities-ObjectToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-equals-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken-equals">
                <body>// Test if this object token is the same as the other token.&#xD;
                  &#xD; return this == other;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-equals-other"
                name="other" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-copy" name="copy"
              class="Semantics-Activities-IntermediateActivities-ObjectToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-copy-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken-copy">
                <body>// Return a new object token with the same value as this token.&#xD; //
                  [Note: the holder of the copy is not set.]&#xD; &#xD; ObjectToken copy =
                  new ObjectToken();&#xD; copy.value = this.value;&#xD; &#xD; return
                  copy;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-isControl"
              name="isControl" class="Semantics-Activities-IntermediateActivities-ObjectToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-isControl-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken-isControl">
                <body>// Return false for an object token.&#xD; &#xD; return false;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-isControl-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-getValue"
              name="getValue" class="Semantics-Activities-IntermediateActivities-ObjectToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-getValue-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectToken-getValue">
                <body>// Return the value of this object token.&#xD; &#xD; return
                  this.value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-getValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-getValue-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectToken-getValue-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation"
            name="ObjectNodeActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <body>An object node activation is an activity node activation for a node that is an
                object node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-ObjectNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-offeredTokenCount"
              name="offeredTokenCount">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-offeredTokenCount-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-offeredTokenCount">
                <body>The number of held tokens that have already been offered.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-run"
              name="run" class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-run-_ownedComment.0">
                <body>// Initialize the offered token count to zero.&#xD; &#xD;
                  super.run();&#xD; this.offeredTokenCount = 0;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendOffers"
              name="sendOffers"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendOffers-_ownedComment.0">
                <body>// If the set of tokens to be sent is empty, then offer a null token
                  instead.&#xD; // Otherwise, offer the given tokens as usual.&#xD;
                  &#xD; if (tokens.size() == 0) {&#xD; tokens.addValue(new
                  ObjectToken());&#xD; }&#xD; &#xD; super.sendOffers(tokens);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendOffers-tokens"
                name="tokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendOffers-tokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendOffers-tokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-terminate"
              name="terminate"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-terminate">
                <body>// Remove any offered tokens and terminate.&#xD; &#xD;
                  this.clearTokens();&#xD; super.terminate();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-addToken"
              name="addToken"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-addToken-_ownedComment.0">
                <body>// Transfer the given token to be held by this node only if it is a non-null
                  object token.&#xD; // If it is a control token or a null token, consume it
                  without holding it.&#xD; &#xD; if (token.getValue() == null) {&#xD;
                  token.withdraw();&#xD; } else {&#xD; super.addToken(token);&#xD;
                  }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-addToken-token"
                name="token" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-removeToken"
              name="removeToken"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-removeToken-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-removeToken">
                <body>// Remove the given token, if it is held by this node activation.&#xD;
                  &#xD; int i = super.removeToken(token);&#xD; if (i &gt; 0 &amp; i
                  &lt;= this.offeredTokenCount) {&#xD; this.offeredTokenCount =
                  this.offeredTokenCount - 1;&#xD; }&#xD; &#xD; return i;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-removeToken-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-removeToken-token"
                name="token" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-clearTokens"
              name="clearTokens"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-clearTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-clearTokens">
                <body>// Remove all held tokens.&#xD; &#xD; super.clearTokens();&#xD;
                  this.offeredTokenCount = 0;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countOfferedValues"
              name="countOfferedValues"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countOfferedValues-_ownedComment.0">
                <body>// Count the total number of non-null object tokens being offered to this node
                  activation.&#xD; &#xD; int totalValueCount = 0;&#xD; int i =
                  1;&#xD; while (i &lt;= this.incomingEdges.size()) {&#xD;
                  totalValueCount = totalValueCount +
                  this.incomingEdges.getValue(i-1).countOfferedValues();&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return totalValueCount;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countOfferedValues-Parameter1"
                name="Parameter1" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendUnofferedTokens"
              name="sendUnofferedTokens"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendUnofferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-sendUnofferedTokens">
                <body>// Send offers over all outgoing edges, if there are any tokens to be
                  offered.&#xD; &#xD; TokenList tokens = this.getUnofferedTokens();&#xD;
                  this.offeredTokenCount = this.offeredTokenCount + tokens.size();&#xD;
                  &#xD; this.sendOffers(tokens);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countUnofferedTokens"
              name="countUnofferedTokens"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countUnofferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countUnofferedTokens">
                <body>// Return the number of unoffered tokens that are to be offered next.&#xD;
                  // (By default, this is all unoffered tokens.)&#xD; &#xD; if
                  (this.heldTokens.size() == 0) {&#xD; this.offeredTokenCount = 0;&#xD;
                  }&#xD; &#xD; return this.heldTokens.size() -
                  this.offeredTokenCount;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-countUnofferedTokens-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens"
              name="getUnofferedTokens"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens">
                <body>// Get the next set of unoffered tokens to be offered and return it.&#xD;
                  // [Note: This effectively treats all object flows as if they have weight=*,
                  rather than the weight=1 default in the current superstructure
                  semantics.]&#xD; &#xD; TokenList tokens = new TokenList();&#xD;
                  &#xD; int i = 1;&#xD; while (i &lt;= this.countUnofferedTokens())
                  {&#xD; tokens.addValue(this.heldTokens.getValue(this.offeredTokenCount + i -
                  1));&#xD; i = i + 1;&#xD; }&#xD; &#xD; return tokens;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-getUnofferedTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-takeUnofferedTokens"
              name="takeUnofferedTokens"
              class="Semantics-Activities-IntermediateActivities-ObjectNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-takeUnofferedTokens-_ownedComment.0">
                <body>// Take the next set of unoffered tokens to be offered from this node
                  activation and return them.&#xD; &#xD; TokenList tokens =
                  this.getUnofferedTokens();&#xD; for (int i = 0; i &lt; tokens.size(); i++)
                  {&#xD; Token token = tokens.getValue(i);&#xD; token.withdraw();&#xD;
                  }&#xD; return tokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-takeUnofferedTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-takeUnofferedTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ObjectNodeActivation-takeUnofferedTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-MergeNodeActivation"
            name="MergeNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-MergeNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-MergeNodeActivation">
              <body>A merge node activation is a control node activation for a node that is a merge
                node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-MergeNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-MergeNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-MergeNodeActivation"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation"
            name="JoinNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-JoinNodeActivation">
              <body>A join node activation is a control node activation for a node that is a join
                node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-JoinNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-isReady"
              name="isReady" class="Semantics-Activities-IntermediateActivities-JoinNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-JoinNodeActivation-isReady">
                <body>// Check that all incoming edges have sources that are offering
                  tokens.&#xD; &#xD; boolean ready = true;&#xD; int i = 1;&#xD;
                  while (ready &amp; i &lt;=this.incomingEdges.size()) {&#xD; ready =
                  this.incomingEdges.getValue(i-1).hasOffer();&#xD; i = i + 1;&#xD;
                  }&#xD; &#xD; return ready;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-JoinNodeActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken" name="ForkedToken">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken">
              <body>A forked token is a proxy for a token that has been offered through a fork node.
                If the token is accepted through the fork node, then the original token is withdrawn
                from its holder, but the forked token remains held by the fork node activation until
                all outstanding offers on all outgoing edges are accepted.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-Token"
              specific="Semantics-Activities-IntermediateActivities-ForkedToken"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-baseToken"
              name="baseToken" type="Semantics-Activities-IntermediateActivities-Token"
              association="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-baseToken-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-baseToken-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-remainingOffersCount"
              name="remainingOffersCount">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-remainingOffersCount-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-remainingOffersCount">
                <body>The remaining number of outstanding offers for this token on outgoing edges of
                  the fork node.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-isControl"
              name="isControl" class="Semantics-Activities-IntermediateActivities-ForkedToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-isControl-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-isControl">
                <body>// Test if the base token is a control token.&#xD; &#xD; return
                  this.baseToken.isControl();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-isControl-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-withdraw"
              name="withdraw" class="Semantics-Activities-IntermediateActivities-ForkedToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-withdraw-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-withdraw">
                <body>// If the base token is not withdrawn, then withdraw it.&#xD; // Decrement
                  the remaining offers count. &#xD; // When the remaining number of offers is
                  zero, then remove this token from its holder.&#xD; &#xD; if
                  (!this.baseToken.isWithdrawn()) {&#xD; this.baseToken.withdraw();&#xD; }
                  &#xD; &#xD; if (this.remainingOffersCount &gt; 0) {&#xD;
                  this.remainingOffersCount = this.remainingOffersCount - 1;&#xD; }&#xD;
                  &#xD; if (this.remainingOffersCount == 0) {&#xD;
                  super.withdraw();&#xD; }</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-copy" name="copy"
              class="Semantics-Activities-IntermediateActivities-ForkedToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-copy-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-copy">
                <body>// Return a copy of the base token.&#xD; &#xD; return
                  this.baseToken.copy();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-equals" name="equals"
              class="Semantics-Activities-IntermediateActivities-ForkedToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-equals-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-equals">
                <body>// Test if this token is equal to another token.&#xD; &#xD; return
                  this == otherToken;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-equals-otherToken"
                name="otherToken" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-getValue"
              name="getValue" class="Semantics-Activities-IntermediateActivities-ForkedToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-getValue-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkedToken-getValue">
                <body>// Return the value of the base token.&#xD; &#xD; return
                  this.baseToken.getValue();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-getValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-getValue-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ForkedToken-getValue-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation"
            name="ForkNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ForkNodeActivation">
              <body>A fork node activation is a control node activation for a node that is a fork
                node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-ForkNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire"
              name="fire" class="Semantics-Activities-IntermediateActivities-ForkNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire">
                <body>// Create forked tokens for all incoming tokens and offer them on all outgoing
                  edges.&#xD; &#xD; if (this.node == null) {&#xD; Debug.println("[fire]
                  Anonymous fork node.");&#xD; } else {&#xD; Debug.println("[fire] Fork node
                  " + this.node.name + "...");&#xD; }&#xD; &#xD;
                  ActivityEdgeInstanceList outgoingEdges = this.outgoingEdges;&#xD; int
                  outgoingEdgeCount = outgoingEdges.size();&#xD; &#xD; TokenList
                  forkedTokens = new TokenList();&#xD; for (int i = 0; i &lt;
                  incomingTokens.size(); i++) {&#xD; Token token =
                  incomingTokens.getValue(i);&#xD; ForkedToken forkedToken = new
                  ForkedToken();&#xD; forkedToken.baseToken = token;&#xD;
                  forkedToken.remainingOffersCount = outgoingEdgeCount;&#xD;
                  forkedTokens.addValue(forkedToken);&#xD; }&#xD; &#xD;
                  this.addTokens(forkedTokens);&#xD; &#xD;
                  this.sendOffers(forkedTokens);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ForkNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation"
            name="InitialNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-InitialNodeActivation">
              <body>An initial node activation is a control node activation for a node that is an
                initial node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-InitialNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire"
              name="fire" class="Semantics-Activities-IntermediateActivities-InitialNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire">
                <body>// Create a single token and send offers for it.&#xD; &#xD; TokenList
                  tokens = new TokenList();&#xD; tokens.addValue(new ControlToken());&#xD;
                  this.addTokens(tokens);&#xD; &#xD; this.sendOffers(tokens);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-InitialNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation"
            name="DecisionNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-_ownedComment.0">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-DecisionNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution"
              name="decisionInputExecution"
              type="Semantics-CommonBehaviors-BasicBehaviors-Execution" aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution">
                <body>The current execution of the decision input behavior (if any).</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire"
              name="fire" class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire">
                <body>// Get the decision values and test them on each guard.&#xD; // Forward
                  the offer over the edges for which the test succeeds.&#xD; &#xD;
                  Debug.println("[fire] Decision node " + this.node.name + "...");&#xD;
                  &#xD; //TokenList incomingTokens = this.takeOfferedTokens();&#xD;
                  TokenList removedControlTokens =
                  this.removeJoinedControlTokens(incomingTokens);&#xD; ValueList decisionValues
                  = this.getDecisionValues(incomingTokens);&#xD; &#xD;
                  ActivityEdgeInstanceList outgoingEdges = this.outgoingEdges;&#xD; for (int i =
                  0; i &lt; outgoingEdges.size(); i++) {&#xD; ActivityEdgeInstance
                  edgeInstance = outgoingEdges.getValue(i);&#xD; ValueSpecification guard =
                  edgeInstance.edge.guard;&#xD; &#xD; TokenList offeredTokens = new
                  TokenList();&#xD; for (int j = 0; j &lt; incomingTokens.size(); j++)
                  {&#xD; Token incomingToken = incomingTokens.getValue(j);&#xD; Value
                  decisionValue = decisionValues.getValue(j);&#xD; if (this.test(guard,
                  decisionValue)) {&#xD; offeredTokens.addValue(incomingToken);&#xD;
                  }&#xD; }&#xD; &#xD; if (offeredTokens.size() &gt; 0) {&#xD;
                  for (int j = 0; j &lt; removedControlTokens.size(); j++) {&#xD; Token
                  removedControlToken = removedControlTokens.getValue(j);&#xD;
                  offeredTokens.addValue(removedControlToken);&#xD; }&#xD;
                  edgeInstance.sendOffer(offeredTokens);&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues"
              name="getDecisionValues"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues">
                <body>// If there is neither a decision input flow nor a decision input behavior,
                  then return the set of values from the incoming tokens. &#xD; // [In this
                  case, the single incoming edge must be an object flow.]&#xD; // If there is a
                  decision input flow, but no decision input behavior, then return a list of the
                  decision input values equal in size to the number of incoming tokens.&#xD; //
                  If there is both a decision input flow and a decision input behavior, then execute
                  the decision input behavior once for each incoming token and return the set of
                  resulting values.&#xD; // If the primary incoming edge is an object flow, then
                  the value on each object token is passed to the decision input behavior, along
                  with the decision input flow value, if any.&#xD; // If the primary incoming
                  edge is a control flow, then the decision input behavior only receives the
                  decision input flow, if any.&#xD; &#xD; &#xD; Value decisionInputValue
                  = this.getDecisionInputFlowValue();&#xD; &#xD; ValueList decisionValues =
                  new ValueList();&#xD; for (int i = 0; i &lt; incomingTokens.size(); i++)
                  {&#xD; Token incomingToken = incomingTokens.getValue(i);&#xD; Value value
                  = this.executeDecisionInputBehavior(incomingToken.getValue(),
                  decisionInputValue);&#xD; decisionValues.addValue(value);&#xD; }&#xD;
                  &#xD; // Debug.println("[getDecisionValues] " + decisionValues.size() + "
                  decision value(s):");&#xD; for (int i = 0; i &lt; decisionValues.size();
                  i++) {&#xD; Value decisionValue = decisionValues.getValue(i);&#xD;
                  Debug.println("[getDecisionValues] decisionValues[" + i + "] = " +
                  decisionValue);&#xD; }&#xD; &#xD; return decisionValues;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-incomingTokens-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior"
              name="executeDecisionInputBehavior"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior">
                <body>// Create the decision input execution from the decision input
                  behavior.&#xD; // If the behavior has input parameter(s), set the input
                  parameter(s) of the execution to the given value(s).&#xD; // Execute the
                  decision input execution and then remove it.&#xD; // Return the value of the
                  output parameter of the execution.&#xD; // If there is no decision input
                  behavior, the decision input value is returned, if one is given, otherwise the
                  input value is used as the decision value.&#xD; &#xD;
                  Debug.println("[executeDecisionBehavior] inputValue = " + inputValue);&#xD;
                  &#xD; Behavior decisionInputBehavior =
                  ((DecisionNode)(this.node)).decisionInput;&#xD; &#xD; Value
                  decisionInputResult = null;&#xD; &#xD; if (decisionInputBehavior == null)
                  {&#xD; &#xD; if (decisionInputValue != null) {&#xD;
                  decisionInputResult = decisionInputValue;&#xD; } else {&#xD;
                  decisionInputResult = inputValue;&#xD; }&#xD; &#xD; } else {&#xD;
                  &#xD; this.decisionInputExecution =
                  this.getExecutionLocus().factory.createExecution(decisionInputBehavior,
                  this.getExecutionContext());&#xD; &#xD; int i = 1;&#xD; int j =
                  0;&#xD; while ((j == 0 | (j == 1 &amp; decisionInputValue != null))
                  &amp; i &lt;= decisionInputBehavior.ownedParameter.size()) {&#xD;
                  Parameter parameter = decisionInputBehavior.ownedParameter.getValue(i-1);&#xD;
                  if (parameter.direction.equals(ParameterDirectionKind.in) |&#xD;
                  parameter.direction.equals(ParameterDirectionKind.inout)) {&#xD;
                  ParameterValue inputParameterValue = new ParameterValue();&#xD;
                  inputParameterValue.parameter = parameter;&#xD; &#xD; j = j +1;&#xD;
                  if (j == 1 &amp;&amp; inputValue != null) {&#xD;
                  inputParameterValue.values.addValue(inputValue);&#xD; } else {&#xD;
                  inputParameterValue.values.addValue(decisionInputValue);&#xD; }&#xD;
                  &#xD;
                  this.decisionInputExecution.setParameterValue(inputParameterValue);&#xD;
                  &#xD; }&#xD; i = i + 1;&#xD; }&#xD; &#xD;
                  this.decisionInputExecution.execute();&#xD; &#xD; ParameterValueList
                  outputParameterValues =
                  this.decisionInputExecution.getOutputParameterValues();&#xD;
                  decisionInputExecution.destroy();&#xD; &#xD; decisionInputResult =
                  outputParameterValues.getValue(0).values.getValue(0);&#xD; &#xD;
                  }&#xD; &#xD; return decisionInputResult;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-inputValue"
                name="inputValue" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-inputValue-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-inputValue-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-decisionInputValue"
                name="decisionInputValue" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-decisionInputValue-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-executeDecisionInputBehavior-decisionInputValue-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-terminate"
              name="terminate"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-terminate">
                <body>// Terminate the decision input execution, if any, and then terminate this
                  activation.&#xD; &#xD; if (this.decisionInputExecution != null) {&#xD;
                  this.decisionInputExecution.terminate();&#xD; }&#xD; &#xD;
                  super.terminate();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-isReady"
              name="isReady"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-isReady">
                <body>// Check that all incoming edges have sources that are offering
                  tokens.&#xD; // [This should be at most two incoming edges, if there is a
                  decision input flow.]&#xD; &#xD; int i = 1;&#xD; boolean ready =
                  true;&#xD; while (ready &amp; i &lt;= this.incomingEdges.size())
                  {&#xD; ready = this.incomingEdges.getValue(i-1).hasOffer();&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return ready;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens"
              name="takeOfferedTokens"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens">
                <body>// Get tokens from the incoming edge that is not the decision input
                  flow.&#xD; &#xD; ObjectFlow decisionInputFlow =
                  ((DecisionNode)(this.node)).decisionInputFlow;&#xD; &#xD; TokenList
                  allTokens = new TokenList();&#xD; ActivityEdgeInstanceList incomingEdges =
                  this.incomingEdges;&#xD; for (int i = 0; i &lt; incomingEdges.size(); i++)
                  {&#xD; ActivityEdgeInstance edgeInstance = incomingEdges.getValue(i);&#xD;
                  if (edgeInstance.edge != decisionInputFlow) {&#xD; TokenList tokens =
                  edgeInstance.takeOfferedTokens();&#xD; for (int j = 0; j &lt;
                  tokens.size(); j++) {&#xD; allTokens.addValue(tokens.getValue(j));&#xD;
                  }&#xD; }&#xD; }&#xD; &#xD; return allTokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-takeOfferedTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue"
              name="getDecisionInputFlowValue"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue">
                <body>// Take the next token available on the decision input flow, if any, and
                  return its value.&#xD; &#xD; ActivityEdgeInstance
                  decisionInputFlowInstance = this.getDecisionInputFlowInstance();&#xD;
                  &#xD; Value value = null;&#xD; if (decisionInputFlowInstance != null)
                  {&#xD; TokenList tokens =
                  decisionInputFlowInstance.takeOfferedTokens();&#xD; if (tokens.size() &gt;
                  0) {&#xD; value = ((ObjectToken)(tokens.getValue(0))).value;&#xD;
                  }&#xD; }&#xD; &#xD; return value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowValue-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance"
              name="getDecisionInputFlowInstance"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance">
                <body>// Get the activity edge instance for the decision input flow, if
                  any.&#xD; &#xD; ActivityEdge decisionInputFlow =
                  ((DecisionNode)(this.node)).decisionInputFlow;&#xD; &#xD;
                  ActivityEdgeInstance edgeInstance = null;&#xD; if (decisionInputFlow != null)
                  {&#xD; int i = 1;&#xD; while (edgeInstance == null &amp; i
                  &lt;=this.incomingEdges.size()) {&#xD; ActivityEdgeInstance incomingEdge =
                  this.incomingEdges.getValue(i-1);&#xD; if (incomingEdge.edge ==
                  decisionInputFlow) {&#xD; edgeInstance = incomingEdge;&#xD; }&#xD; i =
                  i + 1;&#xD; }&#xD; }&#xD; &#xD; return edgeInstance;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-getDecisionInputFlowInstance-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test"
              name="test" class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test">
                <body>// Test if the given value matches the guard. If there is no guard, return
                  true.&#xD; &#xD; boolean guardResult = true;&#xD; if (guard != null)
                  {&#xD; Value guardValue =
                  this.getExecutionLocus().executor.evaluate(guard);&#xD; guardResult =
                  guardValue.equals(value);&#xD; }&#xD; &#xD; return
                  guardResult;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test-guard"
                name="guard" type="Syntax-Classes-Kernel-ValueSpecification"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-test-value"
                name="value" type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens"
              name="removeJoinedControlTokens"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-_ownedComment.0">
                <body>// If the primary incoming edge is an object flow, then remove any control
                  tokens from the incoming tokens and return them.&#xD; // [Control tokens may
                  effectively be offered on an object flow outgoing from a join node that has both
                  control and object flows incoming.]&#xD; &#xD; TokenList
                  removedControlTokens = new TokenList();&#xD; &#xD; if
                  (this.hasObjectFlowInput()) {&#xD; int i = 1;&#xD; while (i &lt;=
                  incomingTokens.size()) {&#xD; Token token =
                  incomingTokens.getValue(i-1);&#xD; if (token.isControl()) {&#xD;
                  removedControlTokens.addValue(token);&#xD;
                  incomingTokens.removeValue(i-1);&#xD; i = i - 1;&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; }&#xD; &#xD; return removedControlTokens;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-incomingTokens-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-removeJoinedControlTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-hasObjectFlowInput"
              name="hasObjectFlowInput"
              class="Semantics-Activities-IntermediateActivities-DecisionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-hasObjectFlowInput-_ownedComment.0">
                <body>// Check that the primary incoming edge is an object flow.&#xD; &#xD;
                  ActivityEdge decisionInputFlow =
                  ((DecisionNode)(this.node)).decisionInputFlow;&#xD; &#xD; boolean
                  isObjectFlow = false;&#xD; int i = 1;&#xD; while (!isObjectFlow &amp;
                  i &lt;= this.incomingEdges.size()) {&#xD; ActivityEdge edge =
                  this.incomingEdges.getValue(i-1).edge;&#xD; isObjectFlow = edge !=
                  decisionInputFlow &amp; edge instanceof ObjectFlow;&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return isObjectFlow;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-hasObjectFlowInput-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ControlToken" name="ControlToken">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ControlToken">
              <body>A control token represents the passing of control along a control flow
              edge.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-Token"
              specific="Semantics-Activities-IntermediateActivities-ControlToken"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-equals" name="equals"
              class="Semantics-Activities-IntermediateActivities-ControlToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-equals-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ControlToken-equals">
                <body>// Return true if the other token is a control token, because control tokens
                  are interchangable.&#xD; &#xD; return other instanceof
                  ControlToken;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-equals-other"
                name="other" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-copy" name="copy"
              class="Semantics-Activities-IntermediateActivities-ControlToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-copy-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ControlToken-copy">
                <body>// Return a new control token.&#xD; &#xD; return new
                  ControlToken();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-isControl"
              name="isControl" class="Semantics-Activities-IntermediateActivities-ControlToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-isControl-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ControlToken-isControl">
                <body>// Return true for a control token.&#xD; &#xD; return true;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-isControl-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-getValue"
              name="getValue" class="Semantics-Activities-IntermediateActivities-ControlToken">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-getValue-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ControlToken-getValue">
                <body>// Control tokens do not have values.&#xD; &#xD; return null;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-getValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-getValue-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ControlToken-getValue-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
            name="ControlNodeActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ControlNodeActivation">
              <body>A control node activation is an activity node activation for a node that is a
                control node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-ControlNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire"
              name="fire" class="Semantics-Activities-IntermediateActivities-ControlNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire">
                <body>// By default, offer all tokens on all outgoing edges.&#xD; &#xD; if
                  (this.node != null) {&#xD; Debug.println("[fire] Control node " +
                  this.node.name + "...");&#xD; }&#xD; &#xD;
                  this.sendOffers(incomingTokens);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ControlNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
            name="ActivityEdgeInstance">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <body>An activity edge instance is a connection between activity node activations
                corresponding to an edge between the corresponding nodes of those activations</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge"
              name="edge" type="Syntax-Activities-IntermediateActivities-ActivityEdge"
              association="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge">
                <body>The activity edge of which this is an instance.&#xD; [This is optional to
                  allow for an implicit fork node execution to be connected to its action execution
                  by an edge instance which does not have a corresponding node in the model.]</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group"
              name="group"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
              association="Semantics-Activities-IntermediateActivities-A_edgeInstances_group">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group">
                <body>The activity group that contains this activity edge instance. </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-source"
              name="source"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              association="Semantics-Activities-IntermediateActivities-A_source_outgoingEdges">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-source-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-source">
                <body>The source of this activity edge instance.&#xD; The node of the source
                  must be the same as the source of the edge of this edge instance.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-target"
              name="target"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              association="Semantics-Activities-IntermediateActivities-A_incomingEdges_target">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-target-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-target">
                <body>The target of this activity edge instance.&#xD; The node of the target
                  must be the same as the target of the edge of this edge instance.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-offers"
              name="offers" visibility="public"
              type="Semantics-Activities-IntermediateActivities-Offer"
              association="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-offers-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-offers-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer"
              name="sendOffer"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer">
                <body>// Send an offer from the source to the target.&#xD; // Keep the offered
                  tokens until taken by the target.&#xD; // (Note that any one edge should only
                  be handling either all object tokens or all control tokens.)&#xD; &#xD;
                  Offer offer = new Offer();&#xD; &#xD; for (int i = 0; i &lt;
                  tokens.size(); i++) {&#xD; Token token = tokens.getValue(i);&#xD; //
                  Debug.println("[sendOffer] token value = " + token.getValue());&#xD;
                  offer.offeredTokens.addValue(token);&#xD; }&#xD; &#xD;
                  this.offers.addValue(offer);&#xD; &#xD;
                  this.target.receiveOffer();&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer-tokens"
                name="tokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer-tokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-sendOffer-tokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-countOfferedValues"
              name="countOfferedValues"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-countOfferedValues-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-countOfferedValues">
                <body>// Return the number of values being offered in object tokens.&#xD;
                  &#xD; int count = 0;&#xD; OfferList offers = this.offers;&#xD; for
                  (int i = 0; i &lt; offers.size(); i++) {&#xD; count = count +
                  offers.getValue(i).countOfferedValues();&#xD; }&#xD; &#xD; return
                  count;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-countOfferedValues-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens"
              name="takeOfferedTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens">
                <body>// Take all the offered tokens and return them.&#xD; &#xD; TokenList
                  tokens = new TokenList();&#xD; &#xD; while (this.offers.size() &gt; 0)
                  {&#xD; TokenList offeredTokens =
                  this.offers.getValue(0).getOfferedTokens();&#xD; for (int i = 0; i &lt;
                  offeredTokens.size(); i++) {&#xD;
                  tokens.addValue(offeredTokens.getValue(i));&#xD; }&#xD;
                  this.offers.removeValue(0);&#xD; }&#xD; &#xD; return tokens;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1"
              name="takeOfferedTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1-_ownedComment.0">
                <body>// Take all the offered tokens, up to the given maximum count of non-null
                  object tokens, and return them.&#xD; &#xD; TokenList tokens = new
                  TokenList();&#xD; int remainingCount = maxCount;&#xD; &#xD; while
                  (this.offers.size() &gt; 0 &amp; remainingCount &gt; 0) {&#xD;
                  Offer offer = this.offers.getValue(0);&#xD; TokenList offeredTokens =
                  offer.getOfferedTokens();&#xD; int count =
                  offer.countOfferedValues();&#xD; if (count &lt;= remainingCount)
                  {&#xD; for (int i = 0; i &lt; offeredTokens.size(); i++) {&#xD;
                  tokens.addValue(offeredTokens.getValue(i));&#xD; }&#xD; remainingCount =
                  remainingCount - count;&#xD; this.offers.removeValue(0);&#xD; } else
                  {&#xD; for (int i = 0; i &lt; remainingCount; i++) {&#xD; Token token
                  = offeredTokens.getValue(i);&#xD; if (token.getValue() != null) {&#xD;
                  tokens.addValue(token);&#xD; }&#xD; }&#xD;
                  offer.removeOfferedValues(remainingCount);&#xD; remainingCount = 0;&#xD;
                  }&#xD; }&#xD; &#xD; return tokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1-maxCount"
                name="maxCount">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1-Parameter1"
                name="Parameter1" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1-Parameter1-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-takeOfferedTokens.1-Parameter1-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens"
              name="getOfferedTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens">
                <body>// Get the offered tokens (after which the tokens will still be
                  offered).&#xD; &#xD; TokenList tokens = new TokenList();&#xD;
                  OfferList offers = this.offers;&#xD; &#xD; for (int i = 0; i &lt;
                  offers.size(); i++) {&#xD; TokenList offeredTokens =
                  offers.getValue(i).getOfferedTokens();&#xD; for (int j = 0; j &lt;
                  offeredTokens.size(); j++) {&#xD;
                  tokens.addValue(offeredTokens.getValue(j));&#xD; }&#xD; }&#xD;
                  &#xD; return tokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-getOfferedTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-hasOffer"
              name="hasOffer"
              class="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-hasOffer-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-hasOffer">
                <body>// Return true if there are any pending offers.&#xD; &#xD; boolean
                  hasTokens = false;&#xD; int i = 1;&#xD; while (!hasTokens &amp; i
                  &lt;= this.offers.size()) {&#xD; hasTokens =
                  this.offers.getValue(i-1).hasTokens();&#xD; i = i + 1;&#xD; }&#xD;
                  &#xD; return hasTokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-hasOffer-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution"
            name="ActivityExecution">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution">
              <body>An activity execution is used to execute a specific activity. The type of the
                activity execution must be an activity.&#xD; When executed, the activity
                execution creates activity edge instances for all activity edges, activity node
                activations for all activity nodes and makes offers to all nodes with no incoming
                edges.&#xD; Execution terminates when either all node activations are complete,
                or an activity final node is executed.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-_generalization.0"
              general="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              specific="Semantics-Activities-IntermediateActivities-ActivityExecution"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-activationGroup"
              name="activationGroup"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
              aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_activationGroup_activityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-activationGroup-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution-activationGroup">
                <body>The group of activations of the activity nodes of the activity.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-execute"
              name="execute" class="Semantics-Activities-IntermediateActivities-ActivityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-execute-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution-execute">
                <body>// Execute the activity for this execution by creating an activity node
                  activation group and activating all the activity nodes in the activity.&#xD;
                  // When this is complete, copy the values on the tokens offered by output
                  parameter nodes to the corresponding output parameters.&#xD; &#xD;
                  Activity activity = (Activity)(this.getTypes().getValue(0));&#xD; &#xD;
                  Debug.println("[execute] Activity " + activity.name + "...");&#xD; //
                  Debug.println("[execute] context = " + this.context.objectId());&#xD;
                  Debug.println("[event] Execute activity=" + activity.name);&#xD; &#xD;
                  this.activationGroup = new ActivityNodeActivationGroup();&#xD;
                  this.activationGroup.activityExecution = this;&#xD;
                  this.activationGroup.activate(activity.node, activity.edge);&#xD; &#xD; //
                  Debug.println("[execute] Getting output parameter node activations...");&#xD;
                  &#xD; ActivityParameterNodeActivationList outputActivations =
                  this.activationGroup.getOutputParameterNodeActivations();&#xD; &#xD; //
                  Debug.println("[execute] There are " + outputActivations.size() + " output
                  parameter node activations.");&#xD; &#xD; for (int i = 0; i &lt;
                  outputActivations.size(); i++) {&#xD; ActivityParameterNodeActivation
                  outputActivation = outputActivations.getValue(i);&#xD; &#xD;
                  ParameterValue parameterValue = new ParameterValue();&#xD;
                  parameterValue.parameter =
                  ((ActivityParameterNode)(outputActivation.node)).parameter;&#xD; &#xD;
                  TokenList tokens = outputActivation.getTokens();&#xD; for (int j = 0; j
                  &lt; tokens.size(); j++) {&#xD; Token token = tokens.getValue(j);&#xD;
                  Value value = ((ObjectToken)token).value;&#xD; if (value != null) {&#xD;
                  parameterValue.values.addValue(value);&#xD; Debug.println("[event] Output
                  activity="+ activity.name + " output=" + value);&#xD; }&#xD; }&#xD;
                  &#xD; this.setParameterValue(parameterValue);&#xD; }&#xD; &#xD;
                  Debug.println("[execute] Activity " + activity.name + " completed.");&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-copy"
              name="copy" class="Semantics-Activities-IntermediateActivities-ActivityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-copy-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution-copy">
                <body>// Create a new activity execution that is a copy of this execution.&#xD;
                  // [Note: This currently just returns a non-executing execution for the same
                  activity as this execution.]&#xD; &#xD; return super.copy();&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-new_"
              name="new_" class="Semantics-Activities-IntermediateActivities-ActivityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-new_-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution-new_">
                <body>// Create a new activity execution with empty properties.&#xD; &#xD;
                  return new ActivityExecution();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-new_-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-terminate"
              name="terminate" class="Semantics-Activities-IntermediateActivities-ActivityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityExecution-terminate-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityExecution-terminate">
                <body>// Terminate all node activations (which will ultimately result in the
                  activity execution completing).&#xD; &#xD;
                  this.activationGroup.terminateAll();&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation"
            name="ActivityFinalNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation">
              <body>An activity final node activation is a control node activation for a node that
                is an activity final node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ControlNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire"
              name="fire"
              class="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire">
                <body>// Terminate the group containing this activation.&#xD; &#xD;
                  Debug.println("[fire] Activity final node " + this.node.name + "...");&#xD;
                  &#xD; this.group.terminateAll();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityFinalNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
            name="ActivityNodeActivation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <body>An activity node activation is used to define the behavior of an activity node
                in the context of a containing activity or structured activity node.&#xD;
              </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticVisitor"
              specific="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group"
              name="group"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
              association="Semantics-Activities-IntermediateActivities-A_nodeActivations_group">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group">
                <body>The group that contains this activity node activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node"
              name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"
              association="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node">
                <body>The activity node being activated by this activity node activation. The node
                  must be owned by the activity (type) of the activity execution of this node
                  activation.&#xD; [This is optional, to allow for fork node edge queues and
                  implicit fork and join node activations for actions to not have nodes in the
                  model.]</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges"
              name="incomingEdges"
              type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              association="Semantics-Activities-IntermediateActivities-A_incomingEdges_target">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges">
                <body>The set of activity edge instances for the incoming edges of the node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges"
              name="outgoingEdges"
              type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              association="Semantics-Activities-IntermediateActivities-A_source_outgoingEdges">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges">
                <body>The set of activity edge instances for the outgoing edges of the node.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-running"
              name="running">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-running-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-running">
                <body>If true, this node activation is enabled for execution once all its other
                  prerequesites are satisfied.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-heldTokens"
              name="heldTokens" type="Semantics-Activities-IntermediateActivities-Token"
              aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_heldTokens_holder">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-heldTokens-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-heldTokens-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-run"
              name="run" class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-run-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-run">
                <body>// Run the activation of this node.&#xD; &#xD; if (this.node != null)
                  {&#xD; Debug.println("[run] node = " + this.node.name);&#xD; } else
                  {&#xD; Debug.println("[run] Anonymous activation of type " +
                  this.getClass().getName());&#xD; }&#xD; &#xD; this.running =
                  true;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-receiveOffer"
              name="receiveOffer"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-receiveOffer-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-receiveOffer">
                <body>// Receive an offer from an incoming edge.&#xD; // Check if all
                  prerequisites have been satisfied. If so, fire.&#xD; &#xD; if (this.node
                  != null) {&#xD; Debug.println("[receiveOffer] node = " +
                  this.node.name);&#xD; }&#xD; &#xD; _beginIsolation();&#xD;
                  &#xD; boolean ready = this.isReady();&#xD; &#xD; TokenList tokens =
                  new TokenList();&#xD; if (ready) {&#xD; Debug.println("[receiveOffer]
                  Firing.");&#xD; tokens = this.takeOfferedTokens();&#xD; }&#xD;
                  &#xD; _endIsolation();&#xD; &#xD; if (ready) {&#xD;
                  this.fire(tokens);&#xD; }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens"
              name="takeOfferedTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens">
                <body>// Get tokens from all incoming edges.&#xD; &#xD; TokenList allTokens
                  = new TokenList();&#xD; ActivityEdgeInstanceList incomingEdges =
                  this.incomingEdges;&#xD; for (int i = 0; i &lt; incomingEdges.size(); i++)
                  {&#xD; ActivityEdgeInstance incomingEdge = incomingEdges.getValue(i);&#xD;
                  TokenList tokens = incomingEdge.takeOfferedTokens();&#xD; for (int j = 0; j
                  &lt; tokens.size(); j ++) {&#xD; Token token =
                  tokens.getValue(j);&#xD; allTokens.addValue(token);&#xD; }&#xD;
                  }&#xD; &#xD; return allTokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeOfferedTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire"
              name="fire" isAbstract="true"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire">
                <body>Carry out the main behavior of this activity node.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-sendOffers"
              name="sendOffers"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-sendOffers-_ownedComment.0">
                <body>// Send offers for the given set of tokens over all outgoing edges (if there
                  are any tokens actually being offered).&#xD; &#xD; if
                  (tokens.size()&gt;0) {&#xD; &#xD; // *** Send all outgoing offers
                  concurrently. ***&#xD; ActivityEdgeInstanceList outgoingEdges =
                  this.outgoingEdges;&#xD; for (Iterator i = outgoingEdges.iterator();
                  i.hasNext();) {&#xD; ActivityEdgeInstance outgoingEdge =
                  (ActivityEdgeInstance)i.next();&#xD; // Debug.println("[sendOffers] Sending
                  offer to " + outgoingEdge.target.node.name + ".");&#xD;
                  outgoingEdge.sendOffer(tokens);&#xD; }&#xD; &#xD; }&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-sendOffers-tokens"
                name="tokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-sendOffers-tokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-sendOffers-tokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-terminate"
              name="terminate"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-terminate-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-terminate">
                <body>// Terminate the activation of this node.&#xD; &#xD; if (this.running)
                  {&#xD; if (this.node != null) {&#xD; Debug.println("[terminate] node = " +
                  this.node.name);&#xD; } else {&#xD; Debug.println("[terminate] Anonymous
                  activation of type " + this.getClass().getName());&#xD; }&#xD; }&#xD;
                  &#xD; this.running = false;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isReady"
              name="isReady"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isReady">
                <body>// Check if all the prerequisites for this node have been satisfied.&#xD;
                  // By default, check that this node is running.&#xD; &#xD; return
                  this.isRunning();&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isRunning"
              name="isRunning"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isRunning-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isRunning">
                <body>// Test whether this node activation is running.&#xD; &#xD; return
                  this.running;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isRunning-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addOutgoingEdge"
              name="addOutgoingEdge"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addOutgoingEdge-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addOutgoingEdge">
                <body>// Add an activity edge instance as an outgoing edge of this activity node
                  activation.&#xD; &#xD; edge.source = this;&#xD;
                  this.outgoingEdges.addValue(edge);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addOutgoingEdge-edge"
                name="edge" type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addIncomingEdge"
              name="addIncomingEdge"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addIncomingEdge-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addIncomingEdge">
                <body>// Add an activity edge instance as an incoming edge of this activity node
                  activation.&#xD; &#xD; edge.target = this;&#xD;
                  this.incomingEdges.addValue(edge);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addIncomingEdge-edge"
                name="edge" type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createNodeActivations"
              name="createNodeActivations"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createNodeActivations">
                <body>// Create node activations for any subnodes of the node for this
                  activation.&#xD; // For most kinds of nodes, this does nothing.&#xD;
                  &#xD; return;&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createEdgeInstances"
              name="createEdgeInstances"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createEdgeInstances-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-createEdgeInstances">
                <body>// Create edge instances for any edge instances owned by the node for this
                  activation.&#xD; // For most kinds of nodes, this does nothing.&#xD;
                  &#xD; return;&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isSourceFor"
              name="isSourceFor"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isSourceFor-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isSourceFor">
                <body>// Check if this node activation is the effective source for the given edge
                  instance.&#xD; &#xD; return edgeInstance.source == this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isSourceFor-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-isSourceFor-edgeInstance"
                name="edgeInstance"
                type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getActivityExecution"
              name="getActivityExecution"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getActivityExecution-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getActivityExecution">
                <body>// Return the activity execution that contains this activity node activation,
                  directly or indirectly.&#xD; &#xD; return
                  this.group.getActivityExecution();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getActivityExecution-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityExecution"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionContext"
              name="getExecutionContext"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionContext-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionContext">
                <body>// Get the context object for the containing activity execution.&#xD;
                  &#xD; return this.getActivityExecution().context;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionContext-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Object" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionLocus"
              name="getExecutionLocus"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionLocus-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionLocus">
                <body>// Get the locus of the containing activity execution.&#xD; &#xD;
                  return this.getActivityExecution().locus;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getExecutionLocus-ReturnResult"
                name="ReturnResult" type="Semantics-Loci-LociL1-Locus" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation"
              name="getNodeActivation"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation">
                <body>// Get the activity node activation corresponding to the given activity node,
                  in the context of this activity node activation.&#xD; // By default, return
                  this activity node activation, if it is for the given node, otherwise return
                  nothing.&#xD; &#xD; ActivityNodeActivation activation = null;&#xD; if
                  (node == this.node) {&#xD; activation = this;&#xD; }&#xD; &#xD;
                  return activation;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation-ReturnResult-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getNodeActivation-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addToken"
              name="addToken"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addToken-_ownedComment.0">
                <body>// Transfer the given token to be held by this node.&#xD; &#xD; if
                  (this.node == null) {&#xD; Debug.println("[addToken] ...");&#xD; } else
                  {&#xD; Debug.println("[addToken] node = " + this.node.name);&#xD;
                  }&#xD; &#xD; Token transferredToken = token.transfer(this);&#xD; //
                  Debug.println("[addToken] Adding token with value = " +
                  transferredToken.getValue());&#xD;
                  this.heldTokens.addValue(transferredToken);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addToken-token"
                name="token" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-removeToken"
              name="removeToken"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-removeToken-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-removeToken">
                <body>// Remove the given token, if it is held by this node activation.&#xD; //
                  Return the position (counting from 1) of the removed token (0 if there is none
                  removed).&#xD; &#xD; boolean notFound = true;&#xD; int i = 1;&#xD;
                  while (notFound &amp; i &lt;= this.heldTokens.size()) {&#xD; if
                  (this.heldTokens.getValue(i-1) == token) {&#xD; if (this.node == null)
                  {&#xD; Debug.println("[removeToken] ...");&#xD; } else {&#xD;
                  Debug.println("[removeToken] node = " + this.node.name);&#xD; }&#xD;
                  this.heldTokens.remove(i-1);&#xD; notFound = false;&#xD; }&#xD; i = i
                  + 1;&#xD; }&#xD; &#xD; if (notFound) {&#xD; i = 0;&#xD; } else
                  {&#xD; i = i - 1;&#xD; }&#xD; &#xD; return i ;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-removeToken-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-removeToken-token"
                name="token" type="Semantics-Activities-IntermediateActivities-Token"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens"
              name="addTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens">
                <body>// Transfer the given tokens to be the held tokens for this node.&#xD;
                  &#xD; // if (this.node == null) {&#xD; // Debug.println("[addTokens]
                  ...");&#xD; // } else {&#xD; // Debug.println("[addTokens] node = " +
                  this.node.name);&#xD; // }&#xD; &#xD; for (int i = 0; i &lt;
                  tokens.size(); i++) {&#xD; Token token = tokens.getValue(i);&#xD;
                  this.addToken(token);&#xD; }</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens-tokens"
                name="tokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens-tokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-addTokens-tokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens"
              name="takeTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens">
                <body>// Take the tokens held by this node activation.&#xD; &#xD; TokenList
                  tokens = this.getTokens();&#xD; this.clearTokens();&#xD; &#xD; return
                  tokens;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-takeTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-clearTokens"
              name="clearTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-clearTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-clearTokens">
                <body>// Remove all held tokens.&#xD; &#xD; while (this.heldTokens.size()
                  &gt; 0) {&#xD; this.heldTokens.getValue(0).withdraw();&#xD; }&#xD;
                  &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens"
              name="getTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens">
                <body>// Get the tokens held by this node activation. &#xD; &#xD; //
                  Debug.println("[getTokens] node = " + this.node.name);&#xD; &#xD;
                  TokenList tokens = new TokenList();&#xD; TokenList heldTokens =
                  this.heldTokens;&#xD; for (int i = 0; i &lt; heldTokens.size(); i++)
                  {&#xD; Token heldToken = heldTokens.getValue(i);&#xD; //
                  Debug.println("[getTokens] token value = " + heldTokens.getValue());&#xD;
                  tokens.addValue(heldToken);&#xD; }&#xD; &#xD; return tokens;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens-ReturnResult"
                name="ReturnResult" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-getTokens-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
            name="ActivityNodeActivationGroup">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <body>An activity node group is a group of nodes that are activated together, either
                directly in the context of an activity execution, or in the context of </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances"
              name="edgeInstances"
              type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_edgeInstances_group">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances">
                <body>The set of activity edge instances for this group. &#xD; </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations"
              name="nodeActivations"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              aggregation="composite"
              association="Semantics-Activities-IntermediateActivities-A_nodeActivations_group">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations">
                <body>The set of activity node executions for this group. &#xD; </body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution"
              name="activityExecution"
              type="Semantics-Activities-IntermediateActivities-ActivityExecution"
              association="Semantics-Activities-IntermediateActivities-A_activationGroup_activityExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution">
                <body>The activity execution to which this group belongs.&#xD; (This will be
                  empty if the group is for a structured activity node activation.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation"
              name="containingNodeActivation"
              type="Semantics-Activities-CompleteStructuredActivities-StructuredActivityNodeActivation"
              association="Semantics-Activities-CompleteStructuredActivities-A_activationGroup_containingNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation">
                <body>The structured activity node activation to which this group belongs.&#xD;
                  (This will be empty if the group is for an activity execution.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-containingNodeActivation-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run"
              name="run"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run">
                <body>// Run the given node activations and then (concurrently) send an offer to all
                  activations for nodes with no incoming edges within the given set.&#xD;
                  &#xD; for (int i = 0; i &lt; activations.size(); i++) {&#xD;
                  ActivityNodeActivation activation = activations.getValue(i);&#xD;
                  activation.run();&#xD; }&#xD; &#xD; Debug.println("[run] Checking for
                  enabled nodes...");&#xD; &#xD; ActivityNodeActivationList
                  enabledActivations = new ActivityNodeActivationList(); &#xD; &#xD; for
                  (int i = 0; i &lt; activations.size(); i++) {&#xD; ActivityNodeActivation
                  activation = activations.getValue(i);&#xD; &#xD; Debug.println("[run]
                  Checking node " + activation.node.name + "...");&#xD; &#xD; if (activation
                  instanceof ActionActivation | &#xD; activation instanceof
                  ControlNodeActivation | &#xD; activation instanceof
                  ActivityParameterNodeActivation) {&#xD; &#xD; boolean isEnabled =
                  this.checkIncomingEdges(activation.incomingEdges, activations);&#xD; &#xD;
                  // For an action activation, also consider incoming edges to input pins&#xD;
                  if (isEnabled &amp; activation instanceof ActionActivation) {&#xD;
                  InputPinList inputPins = ((Action)activation.node).input;&#xD; int j =
                  1;&#xD; while (j &lt;= inputPins.size() &amp; isEnabled) {&#xD;
                  InputPin inputPin = inputPins.getValue(j-1);&#xD; ActivityEdgeInstanceList
                  inputEdges =
                  ((ActionActivation)activation).getPinActivation(inputPin).incomingEdges;&#xD;
                  isEnabled = this.checkIncomingEdges(inputEdges, activations);&#xD; j = j +
                  1;&#xD; }&#xD; }&#xD; &#xD; if (isEnabled) {&#xD;
                  Debug.println("[run] Node " + activation.node.name + " is enabled.");&#xD;
                  enabledActivations.addValue(activation);&#xD; }&#xD; }&#xD; }&#xD;
                  &#xD; // Debug.println("[run] " + enabledActivations.size() + " node(s) are
                  enabled.");&#xD; &#xD; // *** Send offers to all enabled nodes
                  concurrently. ***&#xD; for (Iterator i = enabledActivations.iterator();
                  i.hasNext();) {&#xD; ActivityNodeActivation activation =
                  (ActivityNodeActivation)i.next();&#xD; Debug.println("[run] Sending offer to
                  node " + activation.node.name + ".");&#xD; activation.receiveOffer();&#xD;
                  }</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run-activations"
                name="activations"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run-activations-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-run-activations-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges"
              name="checkIncomingEdges"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-_ownedComment.0">
                <body>// Check if any incoming edges have a source in a given set of
                  activations.&#xD; &#xD; int j = 1;&#xD; boolean notFound =
                  true;&#xD; &#xD; while (j &lt;= incomingEdges.size() &amp;
                  notFound) {&#xD; int k = 1;&#xD; while (k &lt;= activations.size()
                  &amp; notFound) {&#xD; if
                  (activations.getValue(k-1).isSourceFor(incomingEdges.getValue(j-1))) {&#xD;
                  notFound = false;&#xD; }&#xD; k = k + 1;&#xD; }&#xD; j = j +
                  1;&#xD; }&#xD; &#xD; return notFound;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-incomingEdges"
                name="incomingEdges"
                type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-incomingEdges-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-incomingEdges-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-activations"
                name="activations"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-activations-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-activations-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-checkIncomingEdges-Parameter1"
                name="Parameter1" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes"
              name="runNodes"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes">
                <body>// Run the node activations associated with the given nodes in this activation
                  group.&#xD; &#xD; ActivityNodeActivationList nodeActivations = new
                  ActivityNodeActivationList();&#xD; &#xD; for (int i = 0; i &lt;
                  nodes.size(); i++) {&#xD; ActivityNode node = nodes.getValue(i);&#xD;
                  ActivityNodeActivation nodeActivation = this.getNodeActivation(node);&#xD; if
                  (nodeActivation != null) {&#xD;
                  nodeActivations.addValue(nodeActivation);&#xD; }&#xD; }&#xD; &#xD;
                  this.run(nodeActivations);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes-nodes"
                name="nodes" type="Syntax-Activities-IntermediateActivities-ActivityNode">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes-nodes-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-runNodes-nodes-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate"
              name="activate"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate">
                <body>// Activate and run the given set of nodes with the given set of edges, within
                  this activation group.&#xD; &#xD;
                  this.createNodeActivations(nodes);&#xD;
                  this.createEdgeInstances(edges);&#xD; this.run(this.nodeActivations);&#xD;
                  &#xD; // Debug.println("[activate] Exiting.");&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-nodes"
                name="nodes" type="Syntax-Activities-IntermediateActivities-ActivityNode">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-nodes-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-nodes-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-edges"
                name="edges" type="Syntax-Activities-IntermediateActivities-ActivityEdge">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-edges-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activate-edges-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-terminateAll"
              name="terminateAll"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-terminateAll-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-terminateAll">
                <body>// Terminate all node activations in the group.&#xD; &#xD;
                  Debug.println("[terminateAll] Terminating activation group for " +&#xD;
                  (this.activityExecution != null? "activity " +
                  this.activityExecution.getTypes().getValue(0).name: &#xD;
                  this.containingNodeActivation != null? "node " +
                  this.containingNodeActivation.node.name:&#xD; "expansion region") +
                  ".");&#xD; &#xD; ActivityNodeActivationList nodeActivations =
                  this.nodeActivations;&#xD; for (int i = 0; i &lt; nodeActivations.size();
                  i++) {&#xD; ActivityNodeActivation nodeActivation =
                  nodeActivations.getValue(i);&#xD; nodeActivation.terminate();&#xD;
                  }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations"
              name="createNodeActivations"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations">
                <body>// Add activity node activations for the given set of nodes to this group and
                  create edge instances between them.&#xD; &#xD; for (int i = 0; i &lt;
                  nodes.size(); i++) {&#xD; ActivityNode node = nodes.getValue(i);&#xD;
                  &#xD; Debug.println("[createNodeActivations] Creating a node activation for "
                  + node.name + "...");&#xD; this.createNodeActivation(node);&#xD; &#xD;
                  }&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations-nodes"
                name="nodes" type="Syntax-Activities-IntermediateActivities-ActivityNode">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations-nodes-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivations-nodes-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivation"
              name="createNodeActivation"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivation">
                <body>// Create an activity node activation for a given activity node in this
                  activity node activation group.&#xD; &#xD; ActivityNodeActivation
                  activation =
                  (ActivityNodeActivation)(this.getActivityExecution().locus.factory.instantiateVisitor(node));&#xD;
                  activation.node = node;&#xD; activation.running = false;&#xD; &#xD;
                  this.addNodeActivation(activation);&#xD; &#xD;
                  activation.createNodeActivations();&#xD; &#xD; return activation;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivation-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addNodeActivation"
              name="addNodeActivation"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addNodeActivation">
                <body>// Add the given node activation to this group.&#xD; &#xD;
                  activation.group = this;&#xD;
                  this.nodeActivations.addValue(activation);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addNodeActivation-activation"
                name="activation"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation"
              name="getNodeActivation"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation">
                <body>// Return the node activation (if any) in this group, &#xD; // or any
                  nested group, corresponding to the given activity node.&#xD; // If this is a
                  group for a structured activity node activation, &#xD; // also include the pin
                  activations for that node activation.&#xD; &#xD; ActivityNodeActivation
                  activation = null;&#xD; &#xD; if (this.containingNodeActivation != null
                  &amp;&amp; node instanceof Pin) {&#xD; activation =
                  this.containingNodeActivation.getPinActivation((Pin)node);&#xD; }&#xD;
                  &#xD; if (activation == null) {&#xD; int i = 1;&#xD; while (activation
                  == null &amp; i &lt;= this.nodeActivations.size()) { &#xD; activation
                  = this.nodeActivations.getValue(i-1).getNodeActivation(node);&#xD; i = i +
                  1;&#xD; }&#xD; }&#xD; &#xD; return activation;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation-ReturnResult-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getNodeActivation-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances"
              name="createEdgeInstances"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances">
                <body>// Create instance edges for the given activity edges, as well as for edge
                  instances within any nodes activated in this group.&#xD; &#xD; for (int i
                  = 0; i &lt; edges.size(); i++) {&#xD; ActivityEdge edge =
                  edges.getValue(i);&#xD; &#xD; Debug.println("[createEdgeInstances]
                  Creating an edge instance from " + edge.source.name + " to " + edge.target.name +
                  ".");&#xD; &#xD; ActivityEdgeInstance edgeInstance = new
                  ActivityEdgeInstance();&#xD; edgeInstance.edge = edge;&#xD; &#xD;
                  this.addEdgeInstance(edgeInstance);&#xD;
                  this.getNodeActivation(edge.source).addOutgoingEdge(edgeInstance);&#xD;
                  this.getNodeActivation(edge.target).addIncomingEdge(edgeInstance);&#xD;
                  &#xD; // Debug.println("[createEdgeInstances] Edge instance
                  created...");&#xD; }&#xD; &#xD; ActivityNodeActivationList
                  nodeActivations = this.nodeActivations;&#xD; for (int i = 0; i &lt;
                  nodeActivations.size(); i++) {&#xD; ActivityNodeActivation nodeActivation =
                  nodeActivations.getValue(i);&#xD;
                  nodeActivation.createEdgeInstances();&#xD; }&#xD; &#xD; //
                  Debug.println("[createEdgeInstances] Done creating edge instances.");&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances-edges"
                name="edges" type="Syntax-Activities-IntermediateActivities-ActivityEdge">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances-edges-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-createEdgeInstances-edges-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addEdgeInstance"
              name="addEdgeInstance"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addEdgeInstance-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addEdgeInstance">
                <body>// Add the given edge instance to this group.&#xD; &#xD;
                  instance.group = this;&#xD; this.edgeInstances.addValue(instance);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-addEdgeInstance-instance"
                name="instance"
                type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getActivityExecution"
              name="getActivityExecution"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getActivityExecution-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getActivityExecution">
                <body>// Return the activity execution to which this group belongs, directly or
                  indirectly.&#xD; &#xD; ActivityExecution activityExecution =
                  this.activityExecution;&#xD; if (activityExecution == null) {&#xD;
                  activityExecution =
                  this.containingNodeActivation.group.getActivityExecution();&#xD; }&#xD;
                  &#xD; // Debug.println("[getActivityExecution] activityExecution = " +
                  activityExecution);&#xD; &#xD; return activityExecution;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getActivityExecution-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityExecution"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations"
              name="getOutputParameterNodeActivations"
              class="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations">
                <body>// Return the set of all activations in this group of activity parameter nodes
                  for output (inout, out and return) parameters.&#xD; &#xD;
                  ActivityParameterNodeActivationList parameterNodeActivations = new
                  ActivityParameterNodeActivationList();&#xD; ActivityNodeActivationList
                  nodeActivations = this.nodeActivations;&#xD; for (int i = 0; i &lt;
                  nodeActivations.size(); i++) {&#xD; ActivityNodeActivation activation =
                  nodeActivations.getValue(i);&#xD; if (activation instanceof
                  ActivityParameterNodeActivation) {&#xD; ParameterDirectionKind direction =
                  ((ActivityParameterNode)(activation.node)).parameter.direction;&#xD; if
                  ((direction.equals(ParameterDirectionKind.inout)) |&#xD;
                  (direction.equals(ParameterDirectionKind.out)) |&#xD;
                  (direction.equals(ParameterDirectionKind.return_))) {&#xD;
                  parameterNodeActivations.addValue((ActivityParameterNodeActivation)activation);&#xD;
                  }&#xD; }&#xD; }&#xD; &#xD; return
                  parameterNodeActivations;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-getOutputParameterNodeActivations-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation"
            name="ActivityParameterNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation">
              <body>An activity parameter node activation is an object node activation for a node
                that is an activity parameter node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ObjectNodeActivation"
              specific="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire"
              name="fire"
              class="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire">
                <body>// If there are no incoming edges, this is an activation of an input activity
                  parameter node.&#xD; // Get the values from the input parameter indicated by
                  the activity parameter node and offer those values as object tokens.&#xD;
                  &#xD; if (this.node.incoming.size() == 0) {&#xD; Debug.println("[fire]
                  Input activity parameter node " + this.node.name + "...");&#xD; Parameter
                  parameter = ((ActivityParameterNode)(this.node)).parameter;&#xD;
                  ParameterValue parameterValue =
                  this.getActivityExecution().getParameterValue(parameter);&#xD; //
                  Debug.println("[fire] parameter = " + parameter.name);&#xD; if (parameterValue
                  != null) {&#xD; Debug.println("[fire] Parameter has " +
                  parameterValue.values.size() + " value(s).");&#xD; TokenList tokens = new
                  TokenList();&#xD; ValueList values = parameterValue.values;&#xD; for (int
                  i = 0; i &lt; values.size(); i++) {&#xD; Value value =
                  values.getValue(i);&#xD; ObjectToken token = new ObjectToken();&#xD;
                  token.value = value;&#xD; this.addToken(token);&#xD; }&#xD;
                  this.sendUnofferedTokens();&#xD; }&#xD; }&#xD; &#xD; // If there
                  are one or more incoming edges, this is an activation of an output activity
                  parameter node.&#xD; // Take the tokens offered on incoming edges and add them
                  to the set of tokens being offered.&#xD; // [Note that an output activity
                  parameter node may fire multiple times, accumulating tokens offered to
                  it.]&#xD; &#xD; else {&#xD; Debug.println("[fire] Output activity
                  parameter node " + this.node.name + "...");&#xD;
                  this.addTokens(incomingTokens);&#xD; }&#xD; &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-clearTokens"
              name="clearTokens"
              class="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-clearTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-IntermediateActivities-ActivityParameterNodeActivation-clearTokens">
                <body>// Clear all held tokens only if this is an input parameter node.&#xD;
                  &#xD; if (this.node.incoming.size() == 0) {&#xD;
                  super.clearTokens();&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_nodeActivations_group"
            name="A_nodeActivations_group" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-nodeActivations Semantics-Activities-IntermediateActivities-ActivityNodeActivation-group"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_edgeInstances_group"
            name="A_edgeInstances_group" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-edgeInstances Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-group"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_heldTokens_holder"
            name="A_heldTokens_holder" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-heldTokens Semantics-Activities-IntermediateActivities-Token-holder"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation"
            name="A_node_activityNodeActivation" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-node Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation"
              association="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-A_node_activityNodeActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_incomingEdges_target"
            name="A_incomingEdges_target" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityNodeActivation-incomingEdges Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-target"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_activationGroup_activityExecution"
            name="A_activationGroup_activityExecution" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityExecution-activationGroup Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup-activityExecution"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance"
            name="A_edge_activityEdgeInstance" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-edge Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance"
              association="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-A_edge_activityEdgeInstance-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_source_outgoingEdges"
            name="A_source_outgoingEdges" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-source Semantics-Activities-IntermediateActivities-ActivityNodeActivation-outgoingEdges"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance"
            name="A_offers_activityEdgeInstance" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance-offers Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-IntermediateActivities-ActivityEdgeInstance"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance"
              association="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-A_offers_activityEdgeInstance-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation"
            name="A_decisionInputExecution_decisionNodeActivation" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-DecisionNodeActivation-decisionInputExecution Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-IntermediateActivities-DecisionNodeActivation"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation"
              association="Semantics-Activities-IntermediateActivities-A_decisionInputExecution_decisionNodeActivation"
            />
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken"
            name="A_baseToken_forkedToken" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ForkedToken-baseToken Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken-_ownedEnd.0"
              visibility="private" type="Semantics-Activities-IntermediateActivities-ForkedToken"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken"
              association="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-A_baseToken_forkedToken-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_value_objectToken"
            name="A_value_objectToken" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-ObjectToken-value Semantics-Activities-IntermediateActivities-A_value_objectToken-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_value_objectToken-_ownedEnd.0"
              visibility="private" type="Semantics-Activities-IntermediateActivities-ObjectToken"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_value_objectToken"
              association="Semantics-Activities-IntermediateActivities-A_value_objectToken"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer"
            name="A_offeredTokens_offer" visibility="private"
            memberEnd="Semantics-Activities-IntermediateActivities-Offer-offeredTokens Semantics-Activities-IntermediateActivities-A_offeredTokens_offer-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer-_ownedEnd.0"
              visibility="private" type="Semantics-Activities-IntermediateActivities-Offer"
              owningAssociation="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer"
              association="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-IntermediateActivities-A_offeredTokens_offer-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package"
          xmi:id="Semantics-Activities-ExtraStructuredActivities" name="ExtraStructuredActivities">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-_packageImport.0"
            importedPackage="Syntax-Activities-ExtraStructuredActivities"
            importingNamespace="Semantics-Activities-ExtraStructuredActivities"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-_packageImport.1"
            importedPackage="Semantics-Activities-CompleteStructuredActivities"
            importingNamespace="Semantics-Activities-ExtraStructuredActivities"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"
            name="ExpansionActivationGroup">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-_ownedComment.0"
              annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup">
              <body>An expansion activation group is an activity node activation group used for
                activating nodes inside an expansion region.&#xD; It functions just like a
                normal activation group, except it has output pin activations corresponding to the
                input pins and the expansion nodes of the expansion region.&#xD; Instances of
                edges from nodes inside the expansion region that connect to region input pins,
                input expansion nodes or output expansion nodes are redirected to connect to the
                corresponding "region input", "group input" or "group output" pin,
                respectively.&#xD; </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Activities.ExtraStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ActivityNodeActivationGroup"
              specific="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs"
              name="regionInputs" type="Semantics-Actions-BasicActions-OutputPinActivation"
              aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs">
                <body>Output pin activations corresponding, in order, to the input pins of the
                  expansion region of this activation group.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs"
              name="groupInputs" type="Semantics-Actions-BasicActions-OutputPinActivation"
              aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs">
                <body>Output pin activations corresponding, in order, to the input expansion nodes
                  of the expansion region of this activation group.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionActivation"
              name="regionActivation"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"
              association="Semantics-Activities-ExtraStructuredActivities-A_activationGroups_regionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionActivation">
                <body>The expansion region activation this activation group is for.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs"
              name="groupOutputs" type="Semantics-Actions-BasicActions-OutputPinActivation"
              aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs">
                <body>Output pin activations corresponding, in order, to the output expansion nodes
                  of the expansion region of this activation group.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-index"
              name="index" visibility="public">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-index-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-index">
                <body>The index (starting at 1) of this activation group in the list held by the
                  expansion region activation.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getNodeActivation"
              name="getNodeActivation"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getNodeActivation">
                <body>// If the given node is an input pin of the expansion region, then return the
                  corresponding region-input output-pin activation.&#xD; // If the given node is
                  an input expansion node of the expansion region, then return the corresponding
                  group-input output-pin activation.&#xD; // If the given node is an output
                  expansion node of the expansion region, then return the corresponding group-output
                  output-pin activation.&#xD; // Otherwise return the node activation from the
                  activation group, as usual.&#xD; &#xD; ExpansionRegion region =
                  (ExpansionRegion)(this.regionActivation.node);&#xD; &#xD; InputPinList
                  inputs = region.input;&#xD; ActivityNodeActivation activation = null;&#xD;
                  &#xD; int i = 1;&#xD; while (activation == null &amp; i &lt;=
                  region.input.size()) {&#xD; if (node == region.input.getValue(i-1)) {&#xD;
                  activation = this.regionInputs.getValue(i-1);&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; int j = 1;&#xD; while (activation == null
                  &amp; j &lt;= region.inputElement.size()) {&#xD; if (node ==
                  region.inputElement.getValue(j - 1)) {&#xD; activation =
                  this.groupInputs.getValue(j - 1);&#xD; }&#xD; j = j + 1;&#xD;
                  }&#xD; &#xD; int k = 1;&#xD; while (activation == null &amp; k
                  &lt;= region.outputElement.size()) {&#xD; if (node ==
                  region.outputElement.getValue(k - 1)) {&#xD; activation =
                  this.groupOutputs.getValue(k - 1);&#xD; }&#xD; k = k + 1;&#xD;
                  }&#xD; &#xD; if (activation == null) {&#xD; activation =
                  super.getNodeActivation(node);&#xD; }&#xD; &#xD; return
                  activation;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-IntermediateActivities-ActivityNodeActivation"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getNodeActivation-node"
                name="node" type="Syntax-Activities-IntermediateActivities-ActivityNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getActivityExecution"
              name="getActivityExecution"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getActivityExecution-_ownedComment.0">
                <body>// Get the activity execution that contains the expansion region activation
                  for this activation group.&#xD; &#xD; return
                  this.regionActivation.getActivityExecution();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-getActivityExecution-Parameter1"
                name="Parameter1"
                type="Semantics-Activities-IntermediateActivities-ActivityExecution"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation"
            name="ExpansionNodeActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-_ownedComment.0">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Activities.ExtraStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-_generalization.0"
              general="Semantics-Activities-IntermediateActivities-ObjectNodeActivation"
              specific="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire"
              name="fire"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire">
                <body>// Take tokens from all incoming edges.&#xD; &#xD;
                  Debug.println("[fire] Expansion node " + this.node.name + "...");&#xD;
                  &#xD; this.addTokens(incomingTokens);&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire-incomingTokens"
                name="incomingTokens" type="Semantics-Activities-IntermediateActivities-Token">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire-incomingTokens-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-fire-incomingTokens-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-receiveOffer"
              name="receiveOffer"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-receiveOffer-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-receiveOffer">
                <body>// Forward the offer on to the expansion region.&#xD; &#xD;
                  this.getExpansionRegionActivation().receiveOffer();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-isReady"
              name="isReady"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-isReady">
                <body>// An expansion node is always fired by its expansion region.&#xD;
                  &#xD; return false;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-getExpansionRegionActivation"
              name="getExpansionRegionActivation"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-getExpansionRegionActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-getExpansionRegionActivation">
                <body>// Return the expansion region activation corresponding to this expansion
                  node, in the context of the activity node activation group this expansion node
                  activation is in.&#xD; &#xD; ExpansionNode node =
                  (ExpansionNode)(this.node);&#xD; &#xD; ExpansionRegion region =
                  node.regionAsInput;&#xD; if (region == null) {&#xD; region =
                  node.regionAsOutput;&#xD; }&#xD; &#xD; return
                  (ExpansionRegionActivation)(this.group.getNodeActivation(region));&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation-getExpansionRegionActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"
            name="ExpansionRegionActivation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-_ownedComment.0"
              annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <body>An expansion region activation is an action activation for a node that is an
                expansion region.&#xD; [Note that even though an expansion region is a
                structured activity node, an expansion region activation is not a structured
                activity activation because of the special nature of expansion region
              behavior.]</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Activities.ExtraStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-_generalization.0"
              general="Semantics-Actions-BasicActions-ActionActivation"
              specific="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups"
              name="activationGroups"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"
              aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_activationGroups_regionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups">
                <body>The set of expansion activation groups for this expansion region activation.
                  One activation group is created corresponding to each token held by the first
                  input expansion node activation for the expansion region.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens"
              name="inputTokens" visibility="public"
              type="Semantics-Activities-ExtraStructuredActivities-TokenSet" aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens">
                <body>The tokens taken from each of the input pin activations for this expansion
                  region activation. These are preserved for initializing the region inputs of each
                  of the activation groups.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens"
              name="inputExpansionTokens" visibility="public"
              type="Semantics-Activities-ExtraStructuredActivities-TokenSet" aggregation="composite"
              association="Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens">
                <body>The tokens taken from each of the input expansion node activations for this
                  expansion region activation. These are preserved for initializing the group input
                  of each of the activation groups.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-takeOfferedTokens"
              name="takeOfferedTokens"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-takeOfferedTokens-_ownedComment.0">
                <body>// Take the tokens from the input pin and input expansion node activations and
                  save them.&#xD; &#xD; ExpansionRegion region =
                  (ExpansionRegion)(this.node);&#xD; InputPinList inputPins =
                  region.input;&#xD; ExpansionNodeList inputElements =
                  region.inputElement;&#xD; &#xD; this.inputTokens.clear();&#xD;
                  this.inputExpansionTokens.clear();&#xD; &#xD; for (int i = 0; i &lt;
                  inputPins.size(); i++) {&#xD; InputPin inputPin =
                  inputPins.getValue(i);&#xD; TokenSet tokenSet = new TokenSet();&#xD;
                  tokenSet.tokens = this.getPinActivation(inputPin).takeTokens();&#xD;
                  this.inputTokens.addValue(tokenSet);&#xD; }&#xD; &#xD; for (int i = 0;
                  i &lt; inputElements.size(); i++) {&#xD; ExpansionNode inputElement =
                  inputElements.getValue(i);&#xD; ExpansionNodeActivation
                  expansionNodeActivation = this.getExpansionNodeActivation(inputElement);&#xD;
                  expansionNodeActivation.fire(expansionNodeActivation.takeOfferedTokens());&#xD;
                  TokenSet tokenSet = new TokenSet();&#xD; tokenSet.tokens =
                  expansionNodeActivation.takeTokens();&#xD;
                  this.inputExpansionTokens.addValue(tokenSet);&#xD; }&#xD; &#xD; return
                  new TokenList();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-takeOfferedTokens-OwnedParameter"
                name="OwnedParameter" type="Semantics-Activities-IntermediateActivities-Token"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-takeOfferedTokens-OwnedParameter-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-takeOfferedTokens-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-doAction"
              name="doAction"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-doAction-_ownedComment.0">
                <body>// If the expansion region has mustIsolate=true, then carry out its behavior
                  with isolation.&#xD; // Otherwise just activate it normally.&#xD;
                  &#xD; if (((StructuredActivityNode)(this.node)).mustIsolate) {&#xD;
                  _beginIsolation();&#xD; this.doStructuredActivity();&#xD;
                  _endIsolation();&#xD; } else {&#xD; this.doStructuredActivity();&#xD;
                  }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-doStructuredActivity"
              name="doStructuredActivity"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-doStructuredActivity-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-doStructuredActivity">
                <body>// Create a number of expansion region activation groups equal to the number
                  of values expanded in the region, &#xD; // setting the region inputs and group
                  inputs for each group.&#xD; // Run the body of the region in each group,
                  either iteratively or in parallel.&#xD; // Add the outputs of each activation
                  group to the corresonding output expansion node activations.&#xD; &#xD;
                  ExpansionRegion region = (ExpansionRegion)this.node;&#xD; InputPinList
                  inputPins = region.input;&#xD; ExpansionNodeList inputElements =
                  region.inputElement;&#xD; ExpansionNodeList outputElements =
                  region.outputElement;&#xD; &#xD; int n =
                  this.inputExpansionTokens.getValue(0).tokens.size();&#xD; int k = 1;&#xD;
                  while (k &lt;= n) {&#xD; ExpansionActivationGroup activationGroup = new
                  ExpansionActivationGroup();&#xD; activationGroup.regionActivation =
                  this;&#xD; activationGroup.index = k;&#xD; &#xD; int j = 1;&#xD;
                  while (j &lt;= inputPins.size()) {&#xD; OutputPinActivation regionInput =
                  new OutputPinActivation();&#xD; regionInput.run();&#xD;
                  activationGroup.regionInputs.addValue(regionInput);&#xD; j = j + 1;&#xD;
                  }&#xD; &#xD; j = 1;&#xD; while (j &lt;= inputElements.size())
                  {&#xD; OutputPinActivation groupInput = new OutputPinActivation();&#xD;
                  groupInput.run();&#xD;
                  activationGroup.groupInputs.addValue(groupInput);&#xD; j = j + 1;&#xD;
                  }&#xD; &#xD; j = 1;&#xD; while (j &lt;= outputElements.size())
                  {&#xD; OutputPinActivation groupOutput = new OutputPinActivation();&#xD;
                  groupOutput.run();&#xD; activationGroup.groupOutputs.addValue(new
                  OutputPinActivation());&#xD; j = j + 1;&#xD; }&#xD; &#xD;
                  activationGroup.createNodeActivations(region.node);&#xD;
                  activationGroup.createEdgeInstances(region.edge);&#xD;
                  this.activationGroups.addValue(activationGroup);&#xD; &#xD; k = k +
                  1;&#xD; }&#xD; &#xD; ExpansionActivationGroupList activationGroups =
                  this.activationGroups;&#xD; &#xD; if (region.mode ==
                  ExpansionKind.iterative) {&#xD; Debug.println("[doStructuredActivity]
                  Expansion mode = iterative");&#xD; for (int i = 0; i &lt;
                  activationGroups.size(); i++) {&#xD; ExpansionActivationGroup activationGroup
                  = activationGroups.getValue(i);&#xD; this.runGroup(activationGroup);&#xD;
                  }&#xD; }&#xD; else if (region.mode == ExpansionKind.parallel) {&#xD;
                  Debug.println("[doStructuredActivity] Expansion mode = parallel");&#xD; // ***
                  Activate all groups concurrently. ***&#xD; for (Iterator i =
                  activationGroups.iterator(); i.hasNext();) {&#xD; ExpansionActivationGroup
                  activationGroup = (ExpansionActivationGroup)i.next();&#xD;
                  this.runGroup(activationGroup);&#xD; }&#xD; }&#xD; &#xD; for (int
                  i = 0; i &lt; activationGroups.size(); i++) {&#xD;
                  ExpansionActivationGroup activationGroup = activationGroups.getValue(i);&#xD;
                  OutputPinActivationList groupOutputs = activationGroup.groupOutputs;&#xD; for
                  (int j = 0; j &lt; groupOutputs.size(); j++) {&#xD; OutputPinActivation
                  groupOutput = groupOutputs.getValue(j);&#xD; ExpansionNode outputElement =
                  outputElements.getValue(j);&#xD;
                  this.getExpansionNodeActivation(outputElement).addTokens(groupOutput.takeTokens());&#xD;
                  }&#xD; }&#xD; &#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-terminate"
              name="terminate"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-terminate-_ownedComment.0">
                <body>// Terminate the execution of all contained node activations (which completes
                  the performance of the expansion region activation).&#xD; &#xD;
                  ExpansionActivationGroupList activationGroups = this.activationGroups;&#xD;
                  for (int i = 0; i &lt; activationGroups.size(); i++) {&#xD;
                  ExpansionActivationGroup activationGroup =
                  this.activationGroups.getValue(i);&#xD;
                  activationGroup.terminateAll();&#xD; }&#xD; &#xD;
                super.terminate();</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-isReady"
              name="isReady"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-isReady-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-isReady">
                <body>// In addition to the usual ready checks for an action, check that all
                  expansion nodes have the same number of inputs (greater than zero).&#xD;
                  &#xD; ExpansionRegion region = (ExpansionRegion)(this.node);&#xD;
                  &#xD; boolean ready = super.isReady();&#xD; if (ready) {&#xD; int n =
                  this.numberOfValues(); // This gets the number of values on the first expansion
                  node.&#xD; &#xD; if (n &lt; 1) {&#xD; return false;&#xD; }
                  else {&#xD; int i = 1;&#xD; while (ready &amp; i&lt;=
                  region.inputElement.size()) {&#xD; ready =
                  (this.getExpansionNodeActivation(region.inputElement.getValue(i-1)).countOfferedValues()
                  == n);&#xD; i = i + 1;&#xD; }&#xD; }&#xD; }&#xD; &#xD;
                  return ready;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-isReady-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-sendOffers"
              name="sendOffers"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-sendOffers-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-sendOffers">
                <body>// Fire all output expansion nodes and send offers on all outgoing control
                  flows.&#xD; &#xD; ExpansionRegion region =
                  (ExpansionRegion)(this.node);&#xD; &#xD; // *** Send offers from all
                  output expansion nodes concurrently. ***&#xD; ExpansionNodeList outputElements
                  = region.outputElement;&#xD; for (Iterator i = outputElements.iterator();
                  i.hasNext();) {&#xD; ExpansionNode outputElement =
                  (ExpansionNode)i.next();&#xD;
                  this.getExpansionNodeActivation(outputElement).sendUnofferedTokens();&#xD;
                  }&#xD; &#xD; // Send offers on all outgoing control flows.&#xD;
                  super.sendOffers();&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-runGroup"
              name="runGroup"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-runGroup-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-runGroup">
                <body>// Set up the inputs for the group with the given index, run the group and
                  then fire the group outputs.&#xD; &#xD; Debug.println("[runGroup]
                  groupInput[0] = " +
                  this.inputExpansionTokens.getValue(0).tokens.getValue(activationGroup.index-1).getValue());&#xD;
                  &#xD; TokenSetList inputTokens = this.inputTokens;&#xD; for (int j = 0; j
                  &lt; inputTokens.size(); j++) {&#xD; TokenSet tokenSet =
                  inputTokens.getValue(j);&#xD; OutputPinActivation regionInput =
                  activationGroup.regionInputs.getValue(j);&#xD;
                  regionInput.clearTokens();&#xD;
                  regionInput.addTokens(tokenSet.tokens);&#xD;
                  regionInput.sendUnofferedTokens();&#xD; }&#xD; &#xD; TokenSetList
                  inputExpansionTokens = this.inputExpansionTokens;&#xD; for (int j = 0; j
                  &lt; inputExpansionTokens.size(); j++) {&#xD; TokenSet tokenSet =
                  inputExpansionTokens.getValue(j);&#xD; OutputPinActivation groupInput =
                  activationGroup.groupInputs.getValue(j);&#xD;
                  groupInput.clearTokens();&#xD;
                  groupInput.addToken(tokenSet.tokens.getValue(activationGroup.index-1));&#xD;
                  groupInput.sendUnofferedTokens();&#xD; }&#xD; &#xD;
                  activationGroup.run(activationGroup.nodeActivations);&#xD; &#xD;
                  OutputPinActivationList groupOutputs = activationGroup.groupOutputs;&#xD; for
                  (int i = 0; i &lt; groupOutputs.size(); i++) {&#xD; OutputPinActivation
                  groupOutput = groupOutputs.getValue(i);&#xD;
                  groupOutput.fire(groupOutput.takeOfferedTokens());&#xD; }&#xD; &#xD;
                  activationGroup.terminateAll();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-runGroup-activationGroup"
                name="activationGroup"
                type="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-getExpansionNodeActivation"
              name="getExpansionNodeActivation"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-getExpansionNodeActivation-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-getExpansionNodeActivation">
                <body>// Return the expansion node activation corresponding to the given expansion
                  node, in the context of the activity node activation group this expansion region
                  activation is in.&#xD; // [Note: Expansion regions do not own their expansion
                  nodes. Instead, they are own as object nodes by the enclosing activity or group.
                  &#xD; // Therefore, they will already be activated along with their expansion
                  region.]&#xD; &#xD; return
                  (ExpansionNodeActivation)(this.group.getNodeActivation(node));&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-getExpansionNodeActivation-ReturnResult"
                name="ReturnResult"
                type="Semantics-Activities-ExtraStructuredActivities-ExpansionNodeActivation"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-getExpansionNodeActivation-node"
                name="node" type="Syntax-Activities-ExtraStructuredActivities-ExpansionNode"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-numberOfValues"
              name="numberOfValues"
              class="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-numberOfValues-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-numberOfValues">
                <body>// Return the number of values on the first input expansion node of the
                  expansion region of this activation.&#xD; // (The region is required to have
                  at least one input expansion node.)&#xD; &#xD; ExpansionRegion region =
                  (ExpansionRegion)(this.node);&#xD; &#xD; return
                  this.getExpansionNodeActivation(region.inputElement.getValue(0)).countOfferedValues();&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-numberOfValues-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_activationGroups_regionActivation"
            name="A_activationGroups_regionActivation" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-activationGroups Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionActivation"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup"
            name="A_regionInputs_expansionActivationGroup" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-regionInputs Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup"
              association="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_regionInputs_expansionActivationGroup-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup"
            name="A_groupInputs_expansionActivationGroup" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupInputs Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup"
              association="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupInputs_expansionActivationGroup-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup"
            name="A_groupOutputs_expansionActivationGroup" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup-groupOutputs Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup-_ownedEnd.0"
              visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionActivationGroup"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup"
              association="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_groupOutputs_expansionActivationGroup-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet" name="TokenSet">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet-_ownedComment.0"
              annotatedElement="Semantics-Activities-ExtraStructuredActivities-TokenSet">
              <body>A set of tokens taken from an input pin activation or input expansion node
                activation for an expansion region.</body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens" name="tokens"
              visibility="public" type="Semantics-Activities-IntermediateActivities-Token"
              association="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens-_ownedComment.0"
                annotatedElement="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens">
                <body>The set of tokens in this input set.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens-_lowerValue"
              />
            </ownedAttribute>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation"
            name="A_inputTokens_expansionRegionActivation" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputTokens Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation"
              association="Semantics-Activities-ExtraStructuredActivities-A_inputTokens_expansionRegionActivation"
            />
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation"
            name="A_inputExpansionTokens_expansionRegionActivation" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation-inputExpansionTokens Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-ExpansionRegionActivation"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation"
              association="Semantics-Activities-ExtraStructuredActivities-A_inputExpansionTokens_expansionRegionActivation"
            />
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet"
            name="A_tokens_tokenSet" visibility="private"
            memberEnd="Semantics-Activities-ExtraStructuredActivities-TokenSet-tokens Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet-_ownedEnd.0"
              name="" visibility="private"
              type="Semantics-Activities-ExtraStructuredActivities-TokenSet"
              owningAssociation="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet"
              association="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Activities-ExtraStructuredActivities-A_tokens_tokenSet-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Classes" name="Classes">
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Classes-Kernel" name="Kernel">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Classes-Kernel-_packageImport.0"
            importedPackage="Semantics-CommonBehaviors-Communications"
            importingNamespace="Semantics-Classes-Kernel"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Classes-Kernel-_packageImport.1"
            importedPackage="Semantics-Loci-LociL1" importingNamespace="Semantics-Classes-Kernel"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Classes-Kernel-_packageImport.2"
            importedPackage="Syntax-Classes-Kernel" importingNamespace="Semantics-Classes-Kernel"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Classes-Kernel-_packageImport.3"
            importedPackage="Semantics-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-Classes-Kernel"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Classes-Kernel-_packageImport.4"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-Classes-Kernel"> </packageImport>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-StructuredValue"
            name="StructuredValue" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-StructuredValue">
              <body>A structured value is a Value whose type has structural features: a data type
                (but not a primitive type or enumeration), a class or an association.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-_generalization.0"
              general="Semantics-Classes-Kernel-Value"
              specific="Semantics-Classes-Kernel-StructuredValue"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-specify" name="specify"
              class="Semantics-Classes-Kernel-StructuredValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StructuredValue-specify">
                <body>// Return an instance value that specifies this structured value.&#xD;
                  &#xD; // Debug.println("[specify] StructuredValue...");&#xD; &#xD;
                  InstanceValue instanceValue = new InstanceValue();&#xD; InstanceSpecification
                  instance = new InstanceSpecification();&#xD; &#xD; instanceValue.type =
                  null;&#xD; instanceValue.instance = instance;&#xD; &#xD;
                  instance.classifier = this.getTypes();&#xD; &#xD; FeatureValueList
                  featureValues = this.getFeatureValues();&#xD; // Debug.println("[specify] " +
                  featureValues.size() + " feature(s).");&#xD; &#xD; for (int i = 0; i
                  &lt; featureValues.size(); i++) {&#xD; FeatureValue featureValue =
                  featureValues.getValue(i);&#xD; &#xD; Slot slot = new Slot();&#xD;
                  slot.definingFeature = featureValue.feature;&#xD; &#xD; //
                  Debug.println("[specify] feature = " + featureValue.feature.name + ", " +
                  featureValue.values.size() + " value(s).");&#xD; &#xD; ValueList values =
                  featureValue.values;&#xD; for (int j = 0; j &lt; values.size(); j++)
                  {&#xD; Value value = values.getValue(j);&#xD; // Debug.println("[specify]
                  value = " + value);&#xD; slot.value.addValue(value.specify());&#xD;
                  }&#xD; &#xD; instance.slot.addValue(slot);&#xD; }&#xD; &#xD;
                  return instanceValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValue"
              name="getFeatureValue" isAbstract="true"
              class="Semantics-Classes-Kernel-StructuredValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StructuredValue-getFeatureValue">
                <body>Get the feature value associated with the given feature. &#xD; The given
                  feature must be a structural feature of the type of the structured value.&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValue-feature"
                name="feature" type="Syntax-Classes-Kernel-StructuralFeature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue"
              name="setFeatureValue" isAbstract="true"
              class="Semantics-Classes-Kernel-StructuredValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StructuredValue-setFeatureValue">
                <body>Set the value(s) and, optionally, the position index associated with the given
                  feature. &#xD; The given feature must be a structural feature of the type of
                  the structured value.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-feature"
                name="feature" type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-values"
                name="values" type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-values-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-position"
                name="position">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-position-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-setFeatureValue-position-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValues"
              name="getFeatureValues" isAbstract="true"
              class="Semantics-Classes-Kernel-StructuredValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StructuredValue-getFeatureValues">
                <body>Return the feature values associated with this structural value.&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValues-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-StructuredValue-getFeatureValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StructuredValue-createFeatureValues"
              name="createFeatureValues" class="Semantics-Classes-Kernel-StructuredValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StructuredValue-createFeatureValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StructuredValue-createFeatureValues">
                <body>// Create empty feature values for all structural features, direct and
                  inherited, of the types of this structured value.&#xD; &#xD;
                  ClassifierList types = this.getTypes();&#xD; &#xD; for (int i = 0; i
                  &lt; types.size(); i++) {&#xD; Classifier type =
                  types.getValue(i);&#xD; NamedElementList members = type.member;&#xD;
                  &#xD; for (int j = 0; j &lt; members.size(); j++) {&#xD; NamedElement
                  member = members.getValue(j);&#xD; if (member instanceof StructuralFeature)
                  {&#xD; this.setFeatureValue((StructuralFeature)member, new ValueList(),
                  0);&#xD; }&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue" name="UnlimitedNaturalValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <body>An unlimited natural value is a primitive value whose type is
              UnlimitedNatural.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-_generalization.0"
              general="Semantics-Classes-Kernel-PrimitiveValue"
              specific="Semantics-Classes-Kernel-UnlimitedNaturalValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-value-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-value">
                <body>The actual unlimited natural value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#UnlimitedNatural"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-specify" name="specify"
              class="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-specify">
                <body>// Return a literal unlimited natural with the value of this unlimited natural
                  value.&#xD; &#xD; LiteralUnlimitedNatural literal = new
                  LiteralUnlimitedNatural();&#xD; &#xD; literal.type = this.type;&#xD;
                  literal.value = this.value;&#xD; &#xD; return literal;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-equals" name="equals"
              class="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-equals">
                <body>// Test if this unlimited natural value is equal to the otherValue. &#xD;
                  // To be equal, the otherValue must have the same value as this unlimited natural
                  value.&#xD; &#xD; boolean isEqual = false;&#xD; if (otherValue
                  instanceof UnlimitedNaturalValue) {&#xD; isEqual =
                  ((UnlimitedNaturalValue)otherValue).value == this.value;&#xD; }&#xD;
                  &#xD; return isEqual;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-equals-otherValue"
                name="otherValue" type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-copy" name="copy"
              class="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-copy">
                <body>// Create a new unlimited natural value with the same value as this
                  value.&#xD; &#xD; UnlimitedNaturalValue newValue =
                  (UnlimitedNaturalValue)(super.copy());&#xD; &#xD; newValue.value =
                  this.value;&#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-new_" name="new_"
              visibility="protected" class="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-new_">
                <body>// Create a new unlimited natural value with no value.&#xD; &#xD;
                  return new UnlimitedNaturalValue();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-new_-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-toString" name="toString"
              class="Semantics-Classes-Kernel-UnlimitedNaturalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-UnlimitedNaturalValue-toString">
                <body>String stringValue = "*";&#xD; &#xD; if (this.value.naturalValue
                  &gt;= 0) {&#xD; IntegerValue integerValue = new IntegerValue();&#xD;
                  integerValue.value = this.value.naturalValue;&#xD; stringValue =
                  integerValue.toString();&#xD; }&#xD; &#xD; return
                  stringValue;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-UnlimitedNaturalValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-Value" name="Value"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Value-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-Value">
              <body>A value is an instance of one or more classifiers, which are its types. A value
                is always representable using a value specification.&#xD; &#xD; [Note: Value
                specializes SemanticVisitor to allow the Execution subclass to be a semantic
                visitor, without requiring multiple generalization of Execution.]</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Value-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-Value-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticVisitor"
              specific="Semantics-Classes-Kernel-Value"/>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Value-specify"
              name="specify" isAbstract="true" class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-specify">
                <body>Return a value specification whose evaluation gives a value equal to this
                  value.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-specify-ReturnResult" name="ReturnResult"
                type="Syntax-Classes-Kernel-ValueSpecification" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Value-equals"
              name="equals" class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-equals">
                <body>// Test if this value is equal to otherValue. To be equal, this value must
                  have the same type as otherValue. &#xD; // This operation must be overridden
                  in Value subclasses to check for equality of properties defined in those
                  subclasses.&#xD; &#xD; ClassifierList myTypes = this.getTypes();&#xD;
                  ClassifierList otherTypes = otherValue.getTypes();&#xD; &#xD; boolean
                  isEqual = true;&#xD; &#xD; // Debug.println("[equals] Value...");&#xD;
                  // Debug.println("[equals] this has " + myTypes.size() + "types, other has " +
                  otherTypes.size() + ".");&#xD; if (myTypes.size() != otherTypes.size())
                  {&#xD; isEqual = false;&#xD; &#xD; } else {&#xD; //
                  Debug.println("[equals] " + myTypes.size() + " type(s).");&#xD; &#xD; int
                  i = 1;&#xD; while (isEqual &amp; i &lt;= myTypes.size()) {&#xD;
                  &#xD; // Debug.println("[equals] this type = " +
                  myTypes.getValue(i-1).name);&#xD; &#xD; boolean matched = false;&#xD;
                  int j = 1;&#xD; while (!matched &amp; j &lt;= otherTypes.size())
                  {&#xD; // Debug.println("[equals] other type = " +
                  otherTypes.getValue(j-1).name);&#xD; matched = (otherTypes.getValue(j-1) ==
                  myTypes.getValue(i-1));&#xD; j = j + 1;&#xD; }&#xD; &#xD; isEqual
                  = matched;&#xD; i = i + 1;&#xD; }&#xD; }&#xD; &#xD; return
                  isEqual;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-equals-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Value-copy"
              name="copy" class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-copy">
                <body>// Create a new value that is equal to this value. &#xD; // By default,
                  this operation simply creates a new value with empty properties. &#xD; // It
                  must be overridden in each Value subclass to do the superclass copy and then
                  appropriately set properties defined in the subclass.&#xD; &#xD; return
                  this.new_();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Value-new_"
              name="new_" visibility="protected" isAbstract="true"
              class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-new_">
                <body>Create a new value of the same Value subclass as this value, with all
                  properties empty (even if this violates multiplicity constraints). &#xD; This
                  operation must be defined in each concrete Value subclass to create an instance of
                  that subclass.&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Value-getTypes" name="getTypes" isAbstract="true"
              class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-getTypes">
                <body>Gets all the classifiers under which this value is currently
                  classifier.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-getTypes-ReturnResult" name="ReturnResult"
                type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Value-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Value-getTypes-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Value-hasType"
              name="hasType" class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-hasType-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-hasType">
                <body>// Check if this object has the given classifier as a type.&#xD; &#xD;
                  ClassifierList types = this.getTypes();&#xD; &#xD; boolean found =
                  false;&#xD; int i = 1;&#xD; while (!found &amp; i &lt;=
                  types.size()) {&#xD; found = (types.getValue(i-1) == type);&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return found;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-hasType-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-hasType-type" name="type"
                type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Value-toString" name="toString" isAbstract="true"
              class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-toString">
                <body>Return a string representation of this value.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-toString-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Value-objectId" name="objectId"
              class="Semantics-Classes-Kernel-Value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Value-objectId-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Value-objectId">
                <body>// Return an identifier for this object.&#xD; // [Non-normative.]&#xD;
                  &#xD; return super.toString();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Value-objectId-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-StringValue"
            name="StringValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-StringValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-StringValue">
              <body>A string value is a primitive value whose type is String.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-StringValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-StringValue-_generalization.0"
              general="Semantics-Classes-Kernel-PrimitiveValue"
              specific="Semantics-Classes-Kernel-StringValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-StringValue-value" name="value">
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StringValue-specify" name="specify"
              class="Semantics-Classes-Kernel-StringValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StringValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StringValue-specify">
                <body>// Return a literal string with the value of this string value.&#xD;
                  &#xD; LiteralString literal = new LiteralString();&#xD; &#xD;
                  literal.type = this.type;&#xD; literal.value = this.value;&#xD; &#xD;
                  return literal;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StringValue-equals" name="equals"
              class="Semantics-Classes-Kernel-StringValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StringValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StringValue-equals">
                <body>// Test if this string value is equal to the otherValue. &#xD; // To be
                  equal, the otherValue must have the same value as this string value.&#xD;
                  &#xD; boolean isEqual = false;&#xD; if (otherValue instanceof StringValue)
                  {&#xD; isEqual = ((StringValue)otherValue).value.equals(this.value);&#xD;
                  }&#xD; &#xD; return isEqual;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StringValue-copy" name="copy"
              class="Semantics-Classes-Kernel-StringValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StringValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StringValue-copy">
                <body>// Create a new string value with the same value as this string
                  value.&#xD; &#xD; StringValue newValue =
                  (StringValue)(super.copy());&#xD; &#xD; newValue.value =
                  this.value;&#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StringValue-new_" name="new_" visibility="protected"
              class="Semantics-Classes-Kernel-StringValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StringValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StringValue-new_">
                <body>// Create a new string value with no value.&#xD; &#xD; return new
                  StringValue();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-StringValue-toString" name="toString"
              class="Semantics-Classes-Kernel-StringValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-StringValue-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-StringValue-toString">
                <body>return value;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-StringValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-Reference"
            name="Reference">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Reference-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-Reference">
              <body>A reference is an access path to a specific object. There may be multiple
                references to the same object.&#xD; As a structured value, the reference acts
                just the same as its referent in terms of type, features, operations, etc.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Reference-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-Reference-_generalization.0"
              general="Semantics-Classes-Kernel-StructuredValue"
              specific="Semantics-Classes-Kernel-Reference"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-Reference-referent" name="referent"
              type="Semantics-Classes-Kernel-Object"
              association="Semantics-Classes-Kernel-A_reference_reference">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Reference-referent-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Reference-referent-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-startBehavior" name="startBehavior"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-startBehavior">
                <body>// Asynchronously start the behavior of the given classifier for the referent
                  object.&#xD; &#xD; this.referent.startBehavior(classifier,
                  inputs);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Class">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-classifier-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-classifier-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-inputs" name="inputs"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-inputs-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-startBehavior-inputs-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-dispatch" name="dispatch"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-dispatch-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-dispatch">
                <body>// Dispatch the given operation to the referent object.&#xD; &#xD;
                  return this.referent.dispatch(operation);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-dispatch-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-dispatch-operation" name="operation"
                type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-send" name="send"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-send-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-send">
                <body>// Send the given signal instance to the referent object.&#xD; &#xD;
                  this.referent.send(signalInstance);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-send-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-destroy" name="destroy"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-destroy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-destroy">
                <body>// Destroy the referent.&#xD; &#xD; this.referent.destroy();&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-equals" name="equals"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-equals">
                <body>// Test if this reference is equal to the otherValue. &#xD; // To be
                  equal, the otherValue must also be a reference, with the same referent as this
                  reference.&#xD; &#xD; boolean isEqual = false;&#xD; if (otherValue
                  instanceof Reference) {&#xD; isEqual = (((Reference)otherValue).referent ==
                  this.referent);&#xD; }&#xD; &#xD; return isEqual;&#xD; &#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-equals-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-copy" name="copy"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-copy">
                <body>// Create a new reference with the same referent as this reference.&#xD;
                  &#xD; Reference newValue = (Reference)(super.copy());&#xD; &#xD;
                  newValue.referent = this.referent;&#xD; &#xD; return newValue;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-new_" name="new_" visibility="protected"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-new_">
                <body>// Create a new reference with no referent.&#xD; &#xD; return new
                  Reference();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-getTypes" name="getTypes"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-getTypes">
                <body>// Get the types of the referent object.&#xD; &#xD; return
                  this.referent.getTypes();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-getTypes-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-getTypes-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValue" name="getFeatureValue"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-getFeatureValue">
                <body>// Get the feature value associated with the given feature in the referent
                  object.&#xD; &#xD; return this.referent.getFeatureValue(feature);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValue-feature" name="feature"
                type="Syntax-Classes-Kernel-StructuralFeature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue" name="setFeatureValue"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-setFeatureValue">
                <body>// Set the values associated with the given feature in the referent
                  object.&#xD; &#xD; this.referent.setFeatureValue(feature, values,
                  position);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-feature" name="feature"
                type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-values" name="values"
                type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-values-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-position" name="position">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-position-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-setFeatureValue-position-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValues" name="getFeatureValues"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-getFeatureValues">
                <body>// Return the feature values of the referent.&#xD; &#xD; return
                  this.referent.getFeatureValues();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValues-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Reference-getFeatureValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Reference-toString" name="toString"
              class="Semantics-Classes-Kernel-Reference">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Reference-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Reference-toString">
                <body>return "Reference to " + this.referent.toString();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Reference-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-PrimitiveValue"
            name="PrimitiveValue" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-PrimitiveValue">
              <body>A primitive value is a value whose (single) type is a primitive type.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-_generalization.0"
              general="Semantics-Classes-Kernel-Value"
              specific="Semantics-Classes-Kernel-PrimitiveValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-type" name="type"
              type="Syntax-Classes-Kernel-PrimitiveType"
              association="Semantics-Classes-Kernel-A_type_primitiveValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-type-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-copy" name="copy"
              class="Semantics-Classes-Kernel-PrimitiveValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-PrimitiveValue-copy">
                <body>// Create a new value that is equal to this primitive value.&#xD;
                  &#xD; PrimitiveValue newValue = (PrimitiveValue)(super.copy());&#xD;
                  &#xD; newValue.type = this.type;&#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-PrimitiveValue-getTypes" name="getTypes"
              class="Semantics-Classes-Kernel-PrimitiveValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-PrimitiveValue-getTypes">
                <body>// Return the single primitive type of this value.&#xD; &#xD;
                  ClassifierList types = new ClassifierList();&#xD;
                  types.addValue(this.type);&#xD; return types;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-PrimitiveValue-getTypes-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-PrimitiveValue-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-PrimitiveValue-getTypes-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-Object"
            name="Object">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Object-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-Object">
              <body>An object is an extensional value that may have multiple types, all of which
                must be classes. (Note that a destroyed object has no types.)&#xD; An object has
                a unique identity. Usually, references to objects are manipulated, rather than the
                objects themselves, and there may be multiple references to the same
                object.&#xD; If an object is active, it has an object activation that handle the
                execution of its classifier behavior(s).</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Object-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-Object-_generalization.0"
              general="Semantics-Classes-Kernel-ExtensionalValue"
              specific="Semantics-Classes-Kernel-Object"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Classes-Kernel-Object-types"
              name="types" type="Syntax-Classes-Kernel-Class"
              association="Semantics-Classes-Kernel-A_types_object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-types-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-types">
                <body>The classes under which this object is currently classified. (A destroyed
                  object has no types.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Object-types-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Object-types-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-Object-objectActivation" name="objectActivation"
              type="Semantics-CommonBehaviors-Communications-ObjectActivation"
              aggregation="composite"
              association="Semantics-Classes-Kernel-A_objectActivation_object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-objectActivation-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-objectActivation">
                <body>The object activation handling the active behavior of this object.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Object-objectActivation-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Object-objectActivation-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-startBehavior" name="startBehavior"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-startBehavior-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-startBehavior">
                <body>// Create an object activation for this object (if one does not already exist)
                  and start its behavior(s).&#xD; &#xD; // Debug.println("[startBehavior] On
                  object...");&#xD; &#xD; if (this.objectActivation == null) {&#xD;
                  this.objectActivation = new ObjectActivation();&#xD;
                  this.objectActivation.object = this;&#xD; }&#xD; &#xD; //
                  Debug.println("[startBehavior] objectActivation = " + objectActivation);&#xD;
                  &#xD; this.objectActivation.startBehavior(classifier, inputs);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-startBehavior-classifier" name="classifier"
                type="Syntax-Classes-Kernel-Class">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Object-startBehavior-classifier-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Object-startBehavior-classifier-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-startBehavior-inputs" name="inputs"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Object-startBehavior-inputs-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Object-startBehavior-inputs-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-dispatch" name="dispatch"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-dispatch-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-dispatch">
                <body>// Dispatch the given operation to a method execution, using a dispatch
                  strategy.&#xD; &#xD; return
                  ((DispatchStrategy)this.locus.factory.getStrategy("dispatch")).dispatch(this,
                  operation);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-dispatch-ReturnResult" name="ReturnResult"
                type="Semantics-CommonBehaviors-BasicBehaviors-Execution" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-dispatch-operation" name="operation"
                type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Object-send"
              name="send" class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-send-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-send">
                <body>// If the object is active, add the given signal instance to the event pool
                  and signal that a new signal instance has arrived.&#xD; &#xD; if
                  (this.objectActivation != null) {&#xD;
                  this.objectActivation.send(signalInstance);&#xD; }&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-send-signalInstance" name="signalInstance"
                type="Semantics-CommonBehaviors-Communications-SignalInstance"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-destroy" name="destroy"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-destroy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-destroy">
                <body>// Stop the object activation (if any), clear all types and destroy the object
                  as an extensional value.&#xD; &#xD; Debug.println("[destroy] object = " +
                  this.objectId());&#xD; &#xD; if (this.objectActivation != null) {&#xD;
                  this.objectActivation.stop();&#xD; this.objectActivation = null;&#xD;
                  }&#xD; &#xD; this.types.clear();&#xD; super.destroy();&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-register" name="register"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-register-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-register">
                <body>// Register the given accept event accepter to wait for a dispatched signal
                  event.&#xD; &#xD; if (this.objectActivation != null) {&#xD;
                  this.objectActivation.register(accepter);&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-register-accepter" name="accepter"
                type="Semantics-CommonBehaviors-Communications-EventAccepter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-unregister" name="unregister"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-unregister-_ownedComment.0">
                <body>// Remove the given event accepter for the list of waiting event
                  accepters.&#xD; &#xD; if (this.objectActivation != null) {&#xD;
                  this.objectActivation.unregister(accepter);&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-unregister-accepter" name="accepter"
                type="Semantics-CommonBehaviors-Communications-EventAccepter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Object-copy"
              name="copy" class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-copy">
                <body>// Create a new object that is a copy of this object at the same locus as this
                  object.&#xD; // However, the new object will NOT have any object activation
                  (i.e, its classifier behaviors will not be started).&#xD; &#xD; Object_
                  newObject = (Object_)(super.copy());&#xD; &#xD; Class_List types =
                  this.types;&#xD; for (int i = 0; i &lt; types.size(); i++) {&#xD;
                  Class_ type = types.getValue(i);&#xD; newObject.types.addValue(type);&#xD;
                  }&#xD; &#xD; return newObject;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Object-new_"
              name="new_" visibility="protected" class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-new_">
                <body>// Create a new object with no type, feature values or locus.&#xD;
                  &#xD; return new Object_();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Object-getTypes" name="getTypes"
              class="Semantics-Classes-Kernel-Object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Object-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Object-getTypes">
                <body>// Return the types of this object.&#xD; &#xD; ClassifierList types =
                  new ClassifierList();&#xD; Class_List myTypes = this.types;&#xD; for (int
                  i = 0; i &lt; myTypes.size(); i++) {&#xD; Class_ type =
                  myTypes.getValue(i);&#xD; types.addValue(type);&#xD; }&#xD; &#xD;
                  return types;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Object-getTypes-ReturnResult" name="ReturnResult"
                type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Object-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Object-getTypes-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation"
            name="LiteralBooleanEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralBooleanEvaluation">
              <body>A boolean evaluation is an evaluation whose specification is a literal
              boolean.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-LiteralEvaluation"
              specific="Semantics-Classes-Kernel-LiteralBooleanEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate" name="evaluate"
              class="Semantics-Classes-Kernel-LiteralBooleanEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate">
                <body>// Evaluate a literal boolean, producing a boolean value.&#xD; &#xD;
                  LiteralBoolean literal = (LiteralBoolean)specification;&#xD; BooleanValue
                  booleanValue = new BooleanValue();&#xD; booleanValue.type =
                  this.getType("Boolean");&#xD; booleanValue.value = literal.value;&#xD;
                  &#xD; return booleanValue;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-LiteralBooleanEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-LiteralEvaluation"
            name="LiteralEvaluation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralEvaluation">
              <body>A literal evaluation is an evaluation whose specification is a Literal
                Specification.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-Evaluation"
              specific="Semantics-Classes-Kernel-LiteralEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-getType" name="getType"
              class="Semantics-Classes-Kernel-LiteralEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-getType-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralEvaluation-getType">
                <body>// Get the type of the specification. If that is null, then use the built-in
                  type of the given name.&#xD; &#xD; PrimitiveType type =
                  (PrimitiveType)(this.specification.type);&#xD; &#xD; if (type == null)
                  {&#xD; type = this.locus.factory.getBuiltInType(builtInTypeName);&#xD;
                  }&#xD; &#xD; return type;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-getType-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-PrimitiveType" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralEvaluation-getType-builtInTypeName"
                name="builtInTypeName">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation"
            name="LiteralIntegerEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralIntegerEvaluation">
              <body>A literal integer evaluation is an evaluation whose specification is a literal
                integer.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-LiteralEvaluation"
              specific="Semantics-Classes-Kernel-LiteralIntegerEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate" name="evaluate"
              class="Semantics-Classes-Kernel-LiteralIntegerEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate">
                <body>// Evaluate a literal integer, producing an integer value.&#xD; &#xD;
                  LiteralInteger literal = (LiteralInteger)specification;&#xD; IntegerValue
                  integerValue = new IntegerValue();&#xD; integerValue.type =
                  this.getType("Integer");&#xD; integerValue.value = literal.value;&#xD;
                  &#xD; return integerValue;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-LiteralIntegerEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation" name="LiteralNullEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralNullEvaluation">
              <body>A literal null evaluation is an evaluation whose specification is a literal
                null.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-LiteralEvaluation"
              specific="Semantics-Classes-Kernel-LiteralNullEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate" name="evaluate"
              class="Semantics-Classes-Kernel-LiteralNullEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate">
                <body>// Evaluate a literal null, returning nothing (since a null represents an
                  "absence of any value").&#xD; &#xD; return null;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-LiteralNullEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation" name="LiteralStringEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralStringEvaluation">
              <body>A literal string evaluation is an evaluation whose specification is a literal
                string.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-LiteralEvaluation"
              specific="Semantics-Classes-Kernel-LiteralStringEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate" name="evaluate"
              class="Semantics-Classes-Kernel-LiteralStringEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate">
                <body>// Evaluate a literal string, producing a string value.&#xD; &#xD;
                  LiteralString literal = (LiteralString)specification;&#xD; StringValue
                  stringValue = new StringValue();&#xD; stringValue.type =
                  this.getType("String");&#xD; stringValue.value = literal.value;&#xD;
                  &#xD; return stringValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-LiteralStringEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation"
            name="LiteralUnlimitedNaturalEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation">
              <body>A literal unlimited natural evaluation is an evaluation whose specification is a
                literal unlimited natural.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-LiteralEvaluation"
              specific="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate"
              name="evaluate" class="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate">
                <body>// Evaluate a literal unlimited natural producing an unlimited natural
                  value.&#xD; &#xD; LiteralUnlimitedNatural literal =
                  (LiteralUnlimitedNatural)specification;&#xD; UnlimitedNaturalValue
                  unlimitedNaturalValue = new UnlimitedNaturalValue();&#xD;
                  unlimitedNaturalValue.type = this.getType("UnlimitedNatural");&#xD;
                  unlimitedNaturalValue.value = literal.value;&#xD; &#xD; return
                  unlimitedNaturalValue;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-LiteralUnlimitedNaturalEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-Link" name="Link">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Link-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-Link">
              <body>A link is an extensional value whose (single) type is an association. (However,
                if the link has been destroyed, then it has no type.)&#xD; A link must at have
                most one feature value for each structural feature owned by its type.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Link-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-Link-_generalization.0"
              general="Semantics-Classes-Kernel-ExtensionalValue"
              specific="Semantics-Classes-Kernel-Link"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Classes-Kernel-Link-type"
              name="type" type="Syntax-Classes-Kernel-Association"
              association="Semantics-Classes-Kernel-A_type_Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-type-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-type">
                <body>The type of this link.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Link-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Link-type-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Link-destroy"
              name="destroy" class="Semantics-Classes-Kernel-Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-destroy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-destroy">
                <body>// Remove the type of this link and destroy it.&#xD; // Shift the
                  positions of the feature values of any remaining links in &#xD; // the extent
                  of the same association, for ends that are ordered.&#xD; &#xD;
                  Debug.println("[destroy] link = " + this.objectId());&#xD; &#xD;
                  PropertyList ends = this.type.memberEnd;&#xD; ExtensionalValueList extent =
                  this.locus.getExtent(this.type);&#xD; &#xD; for (int i = 0; i &lt;
                  extent.size(); i++) {&#xD; ExtensionalValue otherLink =
                  extent.getValue(i);&#xD; for (int j=0; j &lt; ends.size(); j++) {&#xD;
                  Property end = ends.getValue(j);&#xD; if (end.multiplicityElement.isOrdered)
                  {&#xD; FeatureValue featureValue = otherLink.getFeatureValue(end);&#xD; if
                  (this.getFeatureValue(end).position &lt; featureValue.position) {&#xD;
                  featureValue.position = featureValue.position - 1;&#xD; }&#xD; }&#xD;
                  }&#xD; }&#xD; &#xD; this.type = null;&#xD;
                  super.destroy();&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Link-copy"
              name="copy" class="Semantics-Classes-Kernel-Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-copy">
                <body>// Create a new link with the same type, locus and feature values as this
                  link.&#xD; &#xD; Link newValue = (Link)(super.copy());&#xD; &#xD;
                  newValue.type = this.type;&#xD; &#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Link-new_"
              name="new_" visibility="protected" class="Semantics-Classes-Kernel-Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-new_">
                <body>// Create a new link with no type or properies.&#xD; &#xD; return new
                  Link();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Classes-Kernel-Link-getTypes"
              name="getTypes" class="Semantics-Classes-Kernel-Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-getTypes">
                <body>// Return the single type of this link (if any).&#xD; &#xD;
                  ClassifierList types = null;&#xD; &#xD; if (this.type == null) {&#xD;
                  types = new ClassifierList();&#xD; } else {&#xD; types = new
                  ClassifierList();&#xD; types.addValue(this.type);&#xD; }&#xD;
                  &#xD; return types;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-getTypes-ReturnResult" name="ReturnResult"
                type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Link-getTypes-ReturnResult-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Link-getTypes-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue" name="setFeatureValue"
              class="Semantics-Classes-Kernel-Link">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Link-setFeatureValue">
                <body>// If a position is given, before setting the given feature value, adjust the
                  position values of the ends of other links for this same feature.&#xD;
                  &#xD; if (position &gt; 0) {&#xD; ExtensionalValueList extent =
                  this.locus.getExtent(this.type);&#xD; for (int i = 0; i &lt;
                  extent.size(); i++) {&#xD; ExtensionalValue value =
                  extent.getValue(i);&#xD; FeatureValue featureValue =
                  value.getFeatureValue(feature);&#xD; if (featureValue.position &gt;=
                  position) {&#xD; featureValue.position = featureValue.position + 1;&#xD;
                  }&#xD; }&#xD; }&#xD; &#xD; super.setFeatureValue(feature, values,
                  position);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-feature" name="feature"
                type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-values" name="values"
                type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-values-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-position" name="position">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-position-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Link-setFeatureValue-position-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation" name="InstanceValueEvaluation">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-InstanceValueEvaluation">
              <body>An instance value evaluation is an evaluation whose specification is an instance
                value. </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-_generalization.0"
              general="Semantics-Classes-Kernel-Evaluation"
              specific="Semantics-Classes-Kernel-InstanceValueEvaluation"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate" name="evaluate"
              class="Semantics-Classes-Kernel-InstanceValueEvaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate">
                <body>// If the instance specification is for an enumeration, then return the
                  identified enumeration literal.&#xD; // If the instance specification is for a
                  data type (but not a primitive value or an enumeration), then create a data value
                  of the given data type.&#xD; // If the instance specification is for an
                  object, then create an object at the current locus with the specified
                  types.&#xD; // Set each feature of the created value to the result of
                  evaluating the value specifications for the specified slot for the
                  feature.&#xD; &#xD; // Debug.println("[evaluate]
                  InstanceValueEvaluation...");&#xD; &#xD; InstanceSpecification instance =
                  ((InstanceValue)this.specification).instance;&#xD; ClassifierList types =
                  instance.classifier;&#xD; Classifier myType = types.getValue(0);&#xD;
                  &#xD; Debug.println("[evaluate] type = " + myType.name);&#xD; &#xD;
                  Value value;&#xD; if (instance instanceof EnumerationLiteral) {&#xD; //
                  Debug.println("[evaluate] Type is an enumeration."); &#xD; EnumerationValue
                  enumerationValue = new EnumerationValue();&#xD; enumerationValue.type =
                  (Enumeration)myType;&#xD; enumerationValue.literal =
                  (EnumerationLiteral)instance;&#xD; value = enumerationValue;&#xD;
                  }&#xD; else {&#xD; StructuredValue structuredValue = null;&#xD;
                  &#xD; if (myType instanceof DataType) {&#xD; // Debug.println("[evaluate]
                  Type is a data type.");&#xD; DataValue dataValue = new DataValue();&#xD;
                  dataValue.type = (DataType)myType;&#xD; structuredValue = dataValue;&#xD;
                  }&#xD; else {&#xD; Object_ object = null;&#xD; if (myType instanceof
                  Behavior) {&#xD; // Debug.println("[evaluate] Type is a behavior.");&#xD;
                  object = this.locus.factory.createExecution((Behavior)myType, null);&#xD;
                  }&#xD; else {&#xD; // Debug.println("[evaluate] Type is a
                  class.");&#xD; object = new Object_();&#xD; for (int i = 0; i &lt;
                  types.size(); i++) {&#xD; Classifier type = types.getValue(i);&#xD;
                  object.types.addValue((Class_)type);&#xD; }&#xD; }&#xD; &#xD;
                  this.locus.add(object);&#xD; &#xD; Reference reference = new
                  Reference();&#xD; reference.referent = object;&#xD; structuredValue =
                  reference;&#xD; }&#xD; &#xD;
                  structuredValue.createFeatureValues();&#xD; &#xD; //
                  Debug.println("[evaluate] " + instance.slot.size() + " slot(s).");&#xD;
                  &#xD; SlotList instanceSlots = instance.slot;&#xD; for (int i = 0; i
                  &lt; instanceSlots.size(); i++) {&#xD; Slot slot =
                  instanceSlots.getValue(i);&#xD; ValueList values = new ValueList();&#xD;
                  &#xD; // Debug.println("[evaluate] feature = " + slot.definingFeature.name +
                  ", " + slot.value.size() + " value(s).");&#xD; ValueSpecificationList
                  slotValues = slot.value;&#xD; for (int j = 0; j &lt; slotValues.size();
                  j++) {&#xD; ValueSpecification slotValue = slotValues.getValue(j);&#xD; //
                  Debug.println("[evaluate] Value = " + slotValue.getClass().getName());&#xD;
                  values.addValue(this.locus.executor.evaluate(slotValue));&#xD; }&#xD;
                  structuredValue.setFeatureValue(slot.definingFeature, values, 0);&#xD;
                  }&#xD; &#xD; value = structuredValue;&#xD; }&#xD; &#xD; return
                  value;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-InstanceValueEvaluation-evaluate-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-IntegerValue"
            name="IntegerValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-IntegerValue">
              <body>An integer value is a primitive value whose type is Integer.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-_generalization.0"
              general="Semantics-Classes-Kernel-PrimitiveValue"
              specific="Semantics-Classes-Kernel-IntegerValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-value-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-IntegerValue-value">
                <body>The actual Integer value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-specify" name="specify"
              class="Semantics-Classes-Kernel-IntegerValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-IntegerValue-specify">
                <body>// Return a literal integer with the value of this integer value.&#xD;
                  &#xD; LiteralInteger literal = new LiteralInteger();&#xD; &#xD;
                  literal.type = this.type;&#xD; literal.value = this.value;&#xD; &#xD;
                  return literal;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-equals" name="equals"
              class="Semantics-Classes-Kernel-IntegerValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-IntegerValue-equals">
                <body>// Test if this integer value is equal to the otherValue. &#xD; // To be
                  equal, the otherValue must have the same value as this integer value.&#xD;
                  &#xD; boolean isEqual = false;&#xD; if (otherValue instanceof
                  IntegerValue) {&#xD; isEqual = ((IntegerValue)otherValue).value ==
                  this.value;&#xD; }&#xD; &#xD; return isEqual;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-copy" name="copy"
              class="Semantics-Classes-Kernel-IntegerValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-IntegerValue-copy">
                <body>// Create a new integer value with the same value as this integer
                  value.&#xD; &#xD; IntegerValue newValue =
                  (IntegerValue)(super.copy());&#xD; &#xD; newValue.value =
                  this.value;&#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-new_" name="new_" visibility="protected"
              class="Semantics-Classes-Kernel-IntegerValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-IntegerValue-new_">
                <body>// Create a new integer value with no value.&#xD; &#xD; return new
                  IntegerValue();</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-IntegerValue-toString" name="toString"
              class="Semantics-Classes-Kernel-IntegerValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-toString-_ownedComment.0">
                <body>String stringValue = "";&#xD; &#xD; if (this.value == 0) {&#xD;
                  stringValue = "0";&#xD; } else {&#xD; int positiveValue =
                  this.value;&#xD; &#xD; if (positiveValue &lt; 0) {&#xD;
                  positiveValue = -positiveValue;&#xD; }&#xD; &#xD; do {&#xD; int
                  digit = positiveValue % 10;&#xD; &#xD; if (digit == 0) {&#xD;
                  stringValue = "0" + stringValue;&#xD; } else if (digit == 1) {&#xD;
                  stringValue = "1" + stringValue;&#xD; } else if (digit == 2) {&#xD;
                  stringValue = "2" + stringValue;&#xD; } else if (digit == 3) {&#xD;
                  stringValue = "3" + stringValue;&#xD; } else if (digit == 4) {&#xD;
                  stringValue = "4" + stringValue;&#xD; } else if (digit == 5) {&#xD;
                  stringValue = "5" + stringValue;&#xD; } else if (digit == 6) {&#xD;
                  stringValue = "6" + stringValue;&#xD; } else if (digit == 7) {&#xD;
                  stringValue = "7" + stringValue;&#xD; } else if (digit == 8) {&#xD;
                  stringValue = "8" + stringValue;&#xD; } else if (digit == 9) {&#xD;
                  stringValue = "9" + stringValue;&#xD; }&#xD; &#xD; positiveValue =
                  positiveValue / 10;&#xD; } while (positiveValue &gt; 0);&#xD;
                  &#xD; if (this.value &lt; 0) {&#xD; stringValue = "-" +
                  stringValue;&#xD; }&#xD; }&#xD; &#xD; return stringValue;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-IntegerValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-FeatureValue"
            name="FeatureValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-FeatureValue">
              <body>A feature value gives the value(s) that a single structural feature has in a
                specific structured value.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-feature" name="feature"
              type="Syntax-Classes-Kernel-StructuralFeature"
              association="Semantics-Classes-Kernel-A_feature_featureValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-feature-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-FeatureValue-feature">
                <body>The structural feature being given value(s).</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-feature-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-feature-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-values" name="values"
              type="Semantics-Classes-Kernel-Value" isOrdered="true" isUnique="false"
              aggregation="composite" association="Semantics-Classes-Kernel-A_values_featureValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-values-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-FeatureValue-values">
                <body>The values of for the feature. Zero or more values are possible, as
                  constrained by the multiplicity of the feature.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-values-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-values-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-position" name="position">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-position-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-FeatureValue-position">
                <body>The position of this feature value in a set of ordered values for a feature of
                  an association.&#xD; [This is only relevant if the feature value is for a link
                  and the feature is ordered.]</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-position-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-position-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-hasEqualValues" name="hasEqualValues"
              class="Semantics-Classes-Kernel-FeatureValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-hasEqualValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-FeatureValue-hasEqualValues">
                <body>// Determine if this feature value has an equal set of values as another
                  feature value.&#xD; // If the feature is ordered, then the values also have to
                  be in the same order.&#xD; &#xD; boolean equal = true;&#xD; &#xD;
                  if (this.values.size() != other.values.size()) {&#xD; equal = false;&#xD;
                  &#xD; } else {&#xD; &#xD; // Debug.println("[hasEqualValues] feature =
                  " + this.feature.name + ", " + this.values.size() + " value(s).");&#xD;
                  &#xD; if (this.feature.multiplicityElement.isOrdered) {&#xD; int i =
                  1;&#xD; while (equal &amp; i &lt;= this.values.size()) {&#xD;
                  equal = this.values.getValue(i-1).equals(other.values.getValue(i-1));&#xD; i =
                  i + 1;&#xD; }&#xD; &#xD; } else {&#xD; // Note: otherFeatureValues
                  is used here solely as a holder for a copy of the list of other values,&#xD;
                  // since the Java to UML mapping conventions do not allow "remove" on a local list
                  variable.&#xD; FeatureValue otherFeatureValues = new FeatureValue();&#xD;
                  ValueList values = other.values;&#xD; for (int i=0; i &lt; values.size();
                  i++) {&#xD; Value value = values.getValue(i);&#xD;
                  otherFeatureValues.values.addValue(value);&#xD; }&#xD; &#xD; int i =
                  1;&#xD; while (equal &amp; i &lt;= this.values.size()) {&#xD; //
                  Debug.println("[hasEqualValues] This value [" + (i-1) + "] = " +
                  this.values.getValue(i-1));&#xD; &#xD; boolean matched = false;&#xD;
                  int j = 1;&#xD; while (!matched &amp; j &lt;=
                  otherFeatureValues.values.size()) {&#xD; if
                  (this.values.getValue(i-1).equals(otherFeatureValues.values.getValue(j-1)))
                  {&#xD; // Debug.println("[hasEqualValues] Other value [" + (j-1) + "] = " +
                  otherFeatureValues.values.getValue(j-1));&#xD; matched = true;&#xD;
                  otherFeatureValues.values.remove(j-1);&#xD; }&#xD; j = j + 1;&#xD;
                  }&#xD; &#xD; equal = matched;&#xD; i = i + 1;&#xD; }&#xD;
                  }&#xD; }&#xD; &#xD; return equal;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-hasEqualValues-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-hasEqualValues-other" name="other"
                type="Semantics-Classes-Kernel-FeatureValue"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-FeatureValue-copy" name="copy"
              class="Semantics-Classes-Kernel-FeatureValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-FeatureValue-copy">
                <body>// Create a copy of this feature value.&#xD; &#xD; FeatureValue
                  newValue = new FeatureValue();&#xD; &#xD; newValue.feature =
                  this.feature;&#xD; newValue.position = this.position;&#xD; &#xD;
                  ValueList values = this.values;&#xD; for (int i = 0; i &lt; values.size();
                  i ++) {&#xD; Value value = values.getValue(i);&#xD;
                  newValue.values.addValue(value.copy());&#xD; }&#xD; &#xD; return
                  newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-FeatureValue-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-FeatureValue" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-ExtensionalValue"
            name="ExtensionalValue" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-ExtensionalValue">
              <body>An extensional value is a data value that is part of the extent of some
                classifier at a specific locus.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-_generalization.0"
              general="Semantics-Classes-Kernel-CompoundValue"
              specific="Semantics-Classes-Kernel-ExtensionalValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-locus" name="locus"
              type="Semantics-Loci-LociL1-Locus"
              association="Semantics-Classes-Kernel-A_locus_extensionalValues">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-locus-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-ExtensionalValue-locus">
                <body>The locus of the extent of which this value is a member. (If the value has
                  been destroyed, it has no locus.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-locus-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-locus-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-destroy" name="destroy"
              class="Semantics-Classes-Kernel-ExtensionalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-destroy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-ExtensionalValue-destroy">
                <body>// Remove this value from its locus (if it has not already been
                  destroyed).&#xD; &#xD; if (this.locus != null) {&#xD;
                  this.locus.remove(this);&#xD; }</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-ExtensionalValue-copy" name="copy"
              class="Semantics-Classes-Kernel-ExtensionalValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-ExtensionalValue-copy">
                <body>// Create a new extensional value with the same feature values at the same
                  locus as this one.&#xD; &#xD; ExtensionalValue newValue =
                  (ExtensionalValue)(super.copy());&#xD; &#xD; if (this.locus != null)
                  {&#xD; this.locus.add(newValue);&#xD; }&#xD; &#xD; return
                  newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-ExtensionalValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-Evaluation"
            name="Evaluation" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Evaluation-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-Evaluation">
              <body>An evaluation is used to evaluate a value specification to produce a
              value.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-Evaluation-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-Evaluation-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticVisitor"
              specific="Semantics-Classes-Kernel-Evaluation"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-Evaluation-specification" name="specification"
              type="Syntax-Classes-Kernel-ValueSpecification"
              association="Semantics-Classes-Kernel-A_specification_evaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Evaluation-specification-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Evaluation-specification">
                <body>The value specification to be evaluated.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Evaluation-specification-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Evaluation-specification-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-Evaluation-locus" name="locus"
              type="Semantics-Loci-LociL1-Locus"
              association="Semantics-Classes-Kernel-A_locus_evaluation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Evaluation-locus-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Evaluation-locus">
                <body>The locus at which this evaluation is taking place.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-Evaluation-locus-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-Evaluation-locus-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-Evaluation-evaluate" name="evaluate"
              isAbstract="true" class="Semantics-Classes-Kernel-Evaluation" isQuery="true">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-Evaluation-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-Evaluation-evaluate">
                <body>Evaluate the specification, returning the resulting value.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-Evaluation-evaluate-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-Evaluation-evaluate-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-Evaluation-evaluate-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-EnumerationValue"
            name="EnumerationValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-EnumerationValue">
              <body>An enumeration value is a value whose (single) type is an enumeration. &#xD;
                It's literal must be an owned literal of it's type.&#xD; &#xD; &#xD;
              </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-_generalization.0"
              general="Semantics-Classes-Kernel-Value"
              specific="Semantics-Classes-Kernel-EnumerationValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-literal" name="literal"
              type="Syntax-Classes-Kernel-EnumerationLiteral"
              association="Semantics-Classes-Kernel-A_literal_enumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-literal-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-literal">
                <body>The literal value of this enumeration value.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-literal-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-literal-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-type" name="type"
              type="Syntax-Classes-Kernel-Enumeration"
              association="Semantics-Classes-Kernel-A_type_enumerationValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-type-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-specify" name="specify"
              class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-specify">
                <body>// Return an instance value with literal as the instance.&#xD; &#xD;
                  InstanceValue instanceValue = new InstanceValue();&#xD; InstanceSpecification
                  instance = new InstanceSpecification();&#xD; &#xD; instanceValue.type =
                  this.type;&#xD; instanceValue.instance = this.literal;&#xD; &#xD;
                  return instanceValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-equals" name="equals"
              class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-equals">
                <body>// Test if this enumeration value is equal to the otherValue. &#xD; // To
                  be equal, the otherValue must also be an enumeration value with the same literal
                  as this enumeration value.&#xD; &#xD; boolean isEqual = false;&#xD; if
                  (otherValue instanceof EnumerationValue) {&#xD; isEqual =
                  ((EnumerationValue)otherValue).literal == this.literal;&#xD; }&#xD;
                  &#xD; return isEqual;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-equals-otherValue"
                name="otherValue" type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-copy" name="copy"
              class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-copy">
                <body>// Create a new enumeration value with the same literal as this enumeration
                  value.&#xD; &#xD; EnumerationValue newValue =
                  (EnumerationValue)(super.copy());&#xD; &#xD; newValue.type =
                  this.type;&#xD; newValue.literal = this.literal;&#xD; &#xD; return
                  newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-new_" name="new_"
              visibility="protected" class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-new_">
                <body>// Create a new enumeration value with no literal.&#xD; &#xD; return
                  new EnumerationValue();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-new_-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-getTypes" name="getTypes"
              class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-getTypes">
                <body>// Return the single type of this enumeration value.&#xD; &#xD;
                  ClassifierList types = new ClassifierList();&#xD;
                  types.addValue(this.type);&#xD; &#xD; return types;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-getTypes-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-EnumerationValue-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-EnumerationValue-getTypes-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-EnumerationValue-toString" name="toString"
              class="Semantics-Classes-Kernel-EnumerationValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-EnumerationValue-toString">
                <body>return literal.name;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-EnumerationValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-DataValue"
            name="DataValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-DataValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-DataValue">
              <body>A data value is a compund value whose (single) type is a data type other than a
                primitive type or an enumeration.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-DataValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-DataValue-_generalization.0"
              general="Semantics-Classes-Kernel-CompoundValue"
              specific="Semantics-Classes-Kernel-DataValue"/>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Classes-Kernel-DataValue-type"
              name="type" type="Syntax-Classes-Kernel-DataType"
              association="Semantics-Classes-Kernel-A_type_dataValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DataValue-type-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-DataValue-type">
                <body>The type of this data value. This must not be a primitive or an
                enumeration.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-DataValue-type-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-DataValue-type-_lowerValue" value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DataValue-getTypes" name="getTypes"
              class="Semantics-Classes-Kernel-DataValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DataValue-getTypes-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-DataValue-getTypes">
                <body>// Return the single type of this data value.&#xD; &#xD;
                  ClassifierList types = new ClassifierList();&#xD;
                  types.addValue(this.type);&#xD; &#xD; return types;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DataValue-getTypes-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-DataValue-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-DataValue-getTypes-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DataValue-copy" name="copy"
              class="Semantics-Classes-Kernel-DataValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DataValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-DataValue-copy">
                <body>// Create a new data value with the same type and feature values as this data
                  value.&#xD; &#xD; DataValue newValue = (DataValue)(super.copy());&#xD;
                  &#xD; newValue.type = this.type;&#xD; &#xD; return newValue;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DataValue-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DataValue-new_" name="new_" visibility="protected"
              class="Semantics-Classes-Kernel-DataValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DataValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-DataValue-new_">
                <body>// Create a new data value with no type or feature values.&#xD; &#xD;
                  return new DataValue();</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DataValue-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-CompoundValue"
            name="CompoundValue" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-CompoundValue">
              <body>A compound value is a structured value with by-value semantics. Values are
                associated with each structural feature specified by the type(s) of the compound
                value.&#xD; </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-_generalization.0"
              general="Semantics-Classes-Kernel-StructuredValue"
              specific="Semantics-Classes-Kernel-CompoundValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-featureValues" name="featureValues"
              type="Semantics-Classes-Kernel-FeatureValue" aggregation="composite"
              association="Semantics-Classes-Kernel-A_featureValues_compoundValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-featureValues-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-featureValues-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-equals" name="equals"
              class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-equals">
                <body>// Test if this data value is equal to the otherValue. &#xD; // To be
                  equal, the otherValue must also be a compund value with the same types and equal
                  values for each feature.&#xD; &#xD; // Debug.println("[equals] othervalue
                  instanceof CompoundValue = " + (otherValue instanceof CompoundValue));&#xD; //
                  Debug.println("[equals] super.equals(otherValue) = " +
                  super.equals(otherValue));&#xD; &#xD; boolean isEqual = otherValue
                  instanceof CompoundValue;&#xD; &#xD; if (isEqual) {&#xD; &#xD;
                  CompoundValue otherCompoundValue = (CompoundValue)otherValue;&#xD; //
                  Debug.println("[equals] " + this.featureValues.size() + " feature(s).");&#xD;
                  &#xD; isEqual = super.equals(otherValue) &amp;
                  otherCompoundValue.featureValues.size() == this.featureValues.size();&#xD;
                  &#xD; int i = 1;&#xD; while (isEqual &amp; i &lt;=
                  this.featureValues.size()) {&#xD; FeatureValue thisFeatureValue =
                  this.featureValues.getValue(i-1);&#xD; &#xD; boolean matched =
                  false;&#xD; int j = 1;&#xD; while (!matched &amp; j &lt;=
                  otherCompoundValue.featureValues.size()) {&#xD; FeatureValue otherFeatureValue
                  = otherCompoundValue.featureValues.getValue(j-1);&#xD; if
                  (thisFeatureValue.feature == otherFeatureValue.feature) {&#xD; matched =
                  thisFeatureValue.hasEqualValues(otherFeatureValue);&#xD; }&#xD; j = j +
                  1;&#xD; }&#xD; &#xD; isEqual = matched;&#xD; i = i + 1;&#xD;
                  }&#xD; }&#xD; &#xD; return isEqual;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-copy" name="copy"
              class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-copy">
                <body>// Create a new data value with the same featureValues as this data
                  value.&#xD; &#xD; CompoundValue newValue =
                  (CompoundValue)(super.copy());&#xD; &#xD; FeatureValueList featureValues =
                  this.featureValues;&#xD; for (int i = 0; i &lt; featureValues.size(); i++)
                  {&#xD; FeatureValue featureValue = featureValues.getValue(i);&#xD;
                  newValue.featureValues.addValue(featureValue.copy());&#xD; }&#xD;
                  &#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValue" name="getFeatureValue"
              class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-getFeatureValue">
                <body>// Get the value(s) of the member of featureValues for the given
                  feature.&#xD; &#xD; FeatureValue featureValue = null;&#xD; int i = 1;
                  &#xD; while (featureValue == null &amp; i &lt;=
                  this.featureValues.size()) {&#xD; if (this.featureValues.getValue(i-1).feature
                  == feature) {&#xD; featureValue = this.featureValues.getValue(i-1);&#xD;
                  }&#xD; i = i + 1;&#xD; }&#xD; &#xD; return featureValue;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValue-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValue-feature"
                name="feature" type="Syntax-Classes-Kernel-StructuralFeature"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue" name="setFeatureValue"
              class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-setFeatureValue">
                <body>// Set the value(s) of the member of featureValues for the given
                  feature.&#xD; &#xD; FeatureValue featureValue =
                  this.getFeatureValue(feature);&#xD; &#xD; if (featureValue == null)
                  {&#xD; featureValue = new FeatureValue();&#xD;
                  this.featureValues.addValue(featureValue);&#xD; }&#xD; &#xD;
                  featureValue.feature = feature;&#xD; featureValue.values = values;&#xD;
                  featureValue.position = position;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-feature"
                name="feature" type="Syntax-Classes-Kernel-StructuralFeature"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-values" name="values"
                type="Semantics-Classes-Kernel-Value">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-values-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-values-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-position"
                name="position">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-position-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-setFeatureValue-position-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValues"
              name="getFeatureValues" class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-getFeatureValues">
                <body>// Return the feature values for this compound value.&#xD; &#xD;
                  return this.featureValues;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValues-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-FeatureValue" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Classes-Kernel-CompoundValue-getFeatureValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-removeFeatureValues"
              name="removeFeatureValues" class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-removeFeatureValues-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-removeFeatureValues">
                <body>// Remove all feature values for features whose type is the given
                  classifier.&#xD; &#xD; int i = 1;&#xD; while (i &lt;=
                  this.featureValues.size()) {&#xD; if
                  (this.featureValues.getValue(i-1).feature.typedElement.type == classifier)
                  {&#xD; this.featureValues.remove(i-1);&#xD; }&#xD; else {&#xD; i =
                  i + 1;&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-removeFeatureValues-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-CompoundValue-toString" name="toString"
              class="Semantics-Classes-Kernel-CompoundValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-CompoundValue-toString">
                <body>String buffer = "(" + this.objectId() + ":";&#xD; &#xD; ClassifierList
                  types = this.getTypes();&#xD; &#xD; int i = 1;&#xD; while (i &lt;=
                  types.size()) {&#xD; buffer = buffer +" " + types.getValue(i-1).name;&#xD;
                  i = i + 1;&#xD; }&#xD; &#xD; int k = 1;&#xD; while (k &lt;=
                  this.featureValues.size()) {&#xD; FeatureValue featureValue =
                  this.featureValues.getValue(k-1);&#xD; buffer = buffer + "\n\t\t" +
                  featureValue.feature.name + "[" + featureValue.position + "] =";&#xD;
                  &#xD; int j = 1;&#xD; while (j &lt;= featureValue.values.size())
                  {&#xD; buffer = buffer + " " +
                  featureValue.values.getValue(j-1).toString();&#xD; j = j + 1;&#xD;
                  }&#xD; &#xD; k = k + 1;&#xD; }&#xD; &#xD; return buffer +
                  ")";&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-CompoundValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-BooleanValue"
            name="BooleanValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-BooleanValue">
              <body>A boolean value is a primitive value whose type is Boolean.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import fUML.Semantics.Loci.*;&#xD;
                &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-_generalization.0"
              general="Semantics-Classes-Kernel-PrimitiveValue"
              specific="Semantics-Classes-Kernel-BooleanValue"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-value" name="value">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-value-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-value">
                <body>The actual Boolean value.</body>
              </ownedComment>
              <type xmi:type="uml:PrimitiveType"
                href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-specify" name="specify"
              class="Semantics-Classes-Kernel-BooleanValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-specify-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-specify">
                <body>// Return a literal boolean with the value of this boolean value.&#xD;
                  &#xD; LiteralBoolean literal = new LiteralBoolean();&#xD; &#xD;
                  literal.type = this.type;&#xD; literal.value = this.value;&#xD; &#xD;
                  return literal;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-specify-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-ValueSpecification"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-equals" name="equals"
              class="Semantics-Classes-Kernel-BooleanValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-equals-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-equals">
                <body>// Test if this boolean value is equal to the otherValue. &#xD; // To be
                  equal, the otherValue must have the same value as this boolean value.&#xD;
                  &#xD; boolean isEqual = false;&#xD; if (otherValue instanceof
                  BooleanValue) {&#xD; isEqual = ((BooleanValue)otherValue).value ==
                  this.value;&#xD; }&#xD; &#xD; return isEqual;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-equals-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-equals-otherValue" name="otherValue"
                type="Semantics-Classes-Kernel-Value"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-copy" name="copy"
              class="Semantics-Classes-Kernel-BooleanValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-copy-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-copy">
                <body>// Create a new boolean value with the same value as this boolean
                  value.&#xD; &#xD; BooleanValue newValue =
                  (BooleanValue)(super.copy());&#xD; &#xD; newValue.value =
                  this.value;&#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-copy-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-new_" name="new_" visibility="protected"
              class="Semantics-Classes-Kernel-BooleanValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-new_-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-new_">
                <body>// Return a new boolean value with no value.&#xD; &#xD; return new
                  BooleanValue();</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-new_-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-BooleanValue-toString" name="toString"
              class="Semantics-Classes-Kernel-BooleanValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-toString-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-BooleanValue-toString">
                <body>String stringValue = "false";&#xD; &#xD; if (this.value) {&#xD;
                  stringValue = "true";&#xD; }&#xD; &#xD; return stringValue;&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-BooleanValue-toString-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_featureValues_compoundValue"
            name="A_featureValues_compoundValue" visibility="private"
            memberEnd="Semantics-Classes-Kernel-CompoundValue-featureValues Semantics-Classes-Kernel-A_featureValues_compoundValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_featureValues_compoundValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-CompoundValue"
              owningAssociation="Semantics-Classes-Kernel-A_featureValues_compoundValue"
              association="Semantics-Classes-Kernel-A_featureValues_compoundValue"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_type_dataValue" name="A_type_dataValue"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-DataValue-type Semantics-Classes-Kernel-A_type_dataValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_type_dataValue-_ownedEnd.0" visibility="private"
              type="Semantics-Classes-Kernel-DataValue"
              owningAssociation="Semantics-Classes-Kernel-A_type_dataValue"
              association="Semantics-Classes-Kernel-A_type_dataValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_type_dataValue-_ownedEnd.0-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_type_dataValue-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_type_enumerationValue" name="A_type_enumerationValue"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-EnumerationValue-type Semantics-Classes-Kernel-A_type_enumerationValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_type_enumerationValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-EnumerationValue"
              owningAssociation="Semantics-Classes-Kernel-A_type_enumerationValue"
              association="Semantics-Classes-Kernel-A_type_enumerationValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_type_enumerationValue-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_type_enumerationValue-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_literal_enumerationValue"
            name="A_literal_enumerationValue" visibility="private"
            memberEnd="Semantics-Classes-Kernel-EnumerationValue-literal Semantics-Classes-Kernel-A_literal_enumerationValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_literal_enumerationValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-EnumerationValue"
              owningAssociation="Semantics-Classes-Kernel-A_literal_enumerationValue"
              association="Semantics-Classes-Kernel-A_literal_enumerationValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_literal_enumerationValue-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_literal_enumerationValue-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_specification_evaluation"
            name="A_specification_evaluation" visibility="private"
            memberEnd="Semantics-Classes-Kernel-Evaluation-specification Semantics-Classes-Kernel-A_specification_evaluation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_specification_evaluation-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-Evaluation"
              owningAssociation="Semantics-Classes-Kernel-A_specification_evaluation"
              association="Semantics-Classes-Kernel-A_specification_evaluation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_specification_evaluation-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_specification_evaluation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_locus_evaluation" name="A_locus_evaluation"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-Evaluation-locus Semantics-Classes-Kernel-A_locus_evaluation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_locus_evaluation-_ownedEnd.0" visibility="private"
              type="Semantics-Classes-Kernel-Evaluation"
              owningAssociation="Semantics-Classes-Kernel-A_locus_evaluation"
              association="Semantics-Classes-Kernel-A_locus_evaluation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_locus_evaluation-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_locus_evaluation-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_locus_extensionalValues"
            name="A_locus_extensionalValues" visibility="private"
            memberEnd="Semantics-Classes-Kernel-ExtensionalValue-locus Semantics-Loci-LociL1-Locus-extensionalValues"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_values_featureValue" name="A_values_featureValue"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-FeatureValue-values Semantics-Classes-Kernel-A_values_featureValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_values_featureValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-FeatureValue"
              owningAssociation="Semantics-Classes-Kernel-A_values_featureValue"
              association="Semantics-Classes-Kernel-A_values_featureValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_values_featureValue-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_values_featureValue-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_feature_featureValue" name="A_feature_featureValue"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-FeatureValue-feature Semantics-Classes-Kernel-A_feature_featureValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_feature_featureValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-FeatureValue"
              owningAssociation="Semantics-Classes-Kernel-A_feature_featureValue"
              association="Semantics-Classes-Kernel-A_feature_featureValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_feature_featureValue-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_feature_featureValue-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association" xmi:id="Semantics-Classes-Kernel-A_type_Link"
            name="A_type_Link" visibility="private"
            memberEnd="Semantics-Classes-Kernel-Link-type Semantics-Classes-Kernel-A_type_Link-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_type_Link-_ownedEnd.0" visibility="private"
              type="Semantics-Classes-Kernel-Link"
              owningAssociation="Semantics-Classes-Kernel-A_type_Link"
              association="Semantics-Classes-Kernel-A_type_Link">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_type_Link-_ownedEnd.0-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_type_Link-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_objectActivation_object"
            name="A_objectActivation_object" visibility="private"
            memberEnd="Semantics-Classes-Kernel-Object-objectActivation Semantics-CommonBehaviors-Communications-ObjectActivation-object"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_types_object" name="A_types_object"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-Object-types Semantics-Classes-Kernel-A_types_object-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_types_object-_ownedEnd.0" visibility="private"
              type="Semantics-Classes-Kernel-Object"
              owningAssociation="Semantics-Classes-Kernel-A_types_object"
              association="Semantics-Classes-Kernel-A_types_object">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_types_object-_ownedEnd.0-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_types_object-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_type_primitiveValue" name="A_type_primitiveValue"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-PrimitiveValue-type Semantics-Classes-Kernel-A_type_primitiveValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_type_primitiveValue-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-PrimitiveValue"
              owningAssociation="Semantics-Classes-Kernel-A_type_primitiveValue"
              association="Semantics-Classes-Kernel-A_type_primitiveValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_type_primitiveValue-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_type_primitiveValue-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Classes-Kernel-A_reference_reference" name="A_reference_reference"
            visibility="private"
            memberEnd="Semantics-Classes-Kernel-Reference-referent Semantics-Classes-Kernel-A_reference_reference-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Classes-Kernel-A_reference_reference-_ownedEnd.0"
              visibility="private" type="Semantics-Classes-Kernel-Reference"
              owningAssociation="Semantics-Classes-Kernel-A_reference_reference"
              association="Semantics-Classes-Kernel-A_reference_reference">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Classes-Kernel-A_reference_reference-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Classes-Kernel-A_reference_reference-_ownedEnd.0-_lowerValue"/>
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Classes-Kernel-DispatchStrategy"
            name="DispatchStrategy" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-DispatchStrategy-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-DispatchStrategy">
              <body>A dispatch strategy is a semantic strategy for the polymorphic dispatching of an
                operation to an execution of a method for that operation.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-DispatchStrategy-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticStrategy"
              specific="Semantics-Classes-Kernel-DispatchStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getName" name="getName"
              class="Semantics-Classes-Kernel-DispatchStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getName-_ownedComment.0">
                <body>// Dispatch strategies are always named "dispatch".&#xD; &#xD; return
                  "dispatch";&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getName-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DispatchStrategy-dispatch" name="dispatch"
              class="Semantics-Classes-Kernel-DispatchStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-dispatch-_ownedComment.0">
                <body>// Get the behavior for the given operation as determined by the type(s) of
                  the given object, compile the behavior at the locus of the object, and return the
                  resulting execution object.&#xD; &#xD; return
                  object.locus.factory.createExecution(this.getMethod(object,operation),
                object);</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-dispatch-object" name="object"
                type="Semantics-Classes-Kernel-Object"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-dispatch-operation"
                name="operation" type="Syntax-Classes-Kernel-Operation"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-dispatch-OwnedParameter"
                name="OwnedParameter" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getMethod" name="getMethod"
              isAbstract="true" class="Semantics-Classes-Kernel-DispatchStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getMethod-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-DispatchStrategy-getMethod">
                <body>// Get the method that corresponds to the given operation for the given
                  object.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getMethod-object" name="object"
                type="Semantics-Classes-Kernel-Object"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getMethod-operation"
                name="operation" type="Syntax-Classes-Kernel-Operation"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-DispatchStrategy-getMethod-OwnedParameter"
                name="OwnedParameter" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy"
            name="RedefinitionBasedDispatchStrategy">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-_ownedComment.0"
              annotatedElement="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy">
              <body>A redefinition-based dispatch strategy is one that requires:&#xD; - each
                non-abstract operation to have exactly one method &#xD; - an overriding subclass
                operation to explicitly redefine the overridden superclass operation.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import
                fUML.Semantics.CommonBehaviors.Communications.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; &#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-_generalization.0"
              general="Semantics-Classes-Kernel-DispatchStrategy"
              specific="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod"
              name="getMethod" class="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod">
                <body>// Get the method that corresponds to the given operation for the given
                  object.&#xD; // [If there is more than one type with a method for the
                  operation, then the first one is arbitrarily chosen.]&#xD; &#xD; Behavior
                  method = null;&#xD; int i = 1;&#xD; while (method == null &amp; i
                  &lt;= object.types.size()) {&#xD; Class_ type =
                  object.types.getValue(i-1);&#xD; NamedElementList members =
                  type.member;&#xD; int j = 1;&#xD; while (method == null &amp; j
                  &lt;= members.size()) {&#xD; NamedElement member =
                  members.getValue(j-1);&#xD; if (member instanceof Operation) {&#xD;
                  Operation memberOperation = (Operation)member;&#xD; if
                  (this.operationsMatch(memberOperation, operation)) {&#xD; method =
                  memberOperation.method.getValue(0);&#xD; }&#xD; }&#xD; j = j +
                  1;&#xD; }&#xD; i = i + 1;&#xD; }&#xD; &#xD; return
                  method;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod-ReturnResult"
                name="ReturnResult" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod-object"
                name="object" type="Semantics-Classes-Kernel-Object"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-getMethod-operation"
                name="operation" type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch"
              name="operationsMatch"
              class="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch-_ownedComment.0"
                annotatedElement="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch">
                <body>// Check if the owned operation is equal to or a redefinition (directly or
                  indirectly) of the base operation.&#xD; &#xD; boolean matches =
                  false;&#xD; if (ownedOperation == baseOperation) {&#xD; matches =
                  true;&#xD; } else {&#xD; int i = 1;&#xD; while (!matches &amp; i
                  &lt;= ownedOperation.redefinedOperation.size()) {&#xD; matches =
                  this.operationsMatch(ownedOperation.redefinedOperation.getValue(i-1),
                  baseOperation);&#xD; i = i + 1;&#xD; }&#xD; }&#xD; &#xD;
                  return matches;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch-ReturnResult"
                name="ReturnResult" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch-ownedOperation"
                name="ownedOperation" type="Syntax-Classes-Kernel-Operation"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Classes-Kernel-RedefinitionBasedDispatchStrategy-operationsMatch-baseOperation"
                name="baseOperation" type="Syntax-Classes-Kernel-Operation"/>
            </ownedOperation>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-CommonBehaviors"
        name="CommonBehaviors">
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-CommonBehaviors-BasicBehaviors"
          name="BasicBehaviors">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-_packageImport.0"
            importedPackage="Semantics-Classes-Kernel"
            importingNamespace="Semantics-CommonBehaviors-BasicBehaviors"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-_packageImport.1"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-CommonBehaviors-BasicBehaviors"> </packageImport>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue" name="ParameterValue">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
              <body>A parameter value gives the value(s) for a specific parameter.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-parameter"
              name="parameter" type="Syntax-Classes-Kernel-Parameter"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-parameter-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-parameter-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values" name="values"
              type="Semantics-Classes-Kernel-Value" aggregation="composite"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values">
                <body>The values of for the parameter. Zero or more values are possible, as
                  constrained by the multiplicity of the parameter.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-copy" name="copy"
              class="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-copy-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-copy">
                <body>// Create a new parameter value for the same parameter as this parameter
                  value, but with copies of the values of this parameter value.&#xD; &#xD;
                  ParameterValue newValue = new ParameterValue();&#xD; &#xD;
                  newValue.parameter = this.parameter;&#xD; &#xD; ValueList values =
                  this.values;&#xD; for (int i = 0; i &lt; values.size(); i++) {&#xD;
                  Value value = values.getValue(i);&#xD;
                  newValue.values.addValue(value.copy());&#xD; }&#xD; &#xD; return
                  newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-copy-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution"
            name="OpaqueBehaviorExecution" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution">
              <body>An opaque execution is an execution for an opaque behavior. &#xD; Opaque
                behaviors are used to define primitive behaviors.&#xD; The actual definition of
                the primitive behavior should be given in a concrete subclass of
                OpaqueBehaviorExecution.&#xD; </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-_generalization.0"
              general="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              specific="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-execute"
              name="execute"
              class="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-execute-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-execute">
                <body>// Execute the body of the opaque behavior.&#xD; &#xD;
                  Debug.println("[execute] Opaque behavior " + this.getBehavior().name +
                  "...");&#xD; &#xD; ParameterList parameters =
                  this.getBehavior().ownedParameter;&#xD; &#xD; ParameterValueList inputs =
                  new ParameterValueList();&#xD; ParameterValueList outputs = new
                  ParameterValueList();&#xD; &#xD; for (int i = 0; i &lt;
                  parameters.size(); i++) {&#xD; Parameter parameter =
                  parameters.getValue(i);&#xD; &#xD; if ((parameter.direction ==
                  ParameterDirectionKind.in) |&#xD; (parameter.direction ==
                  ParameterDirectionKind.inout)) {&#xD;
                  inputs.addValue(this.getParameterValue(parameter));&#xD; }&#xD; &#xD;
                  if ((parameter.direction == ParameterDirectionKind.inout) |&#xD;
                  (parameter.direction == ParameterDirectionKind.out) |&#xD;
                  (parameter.direction == ParameterDirectionKind.return_)) {&#xD; ParameterValue
                  parameterValue = new ParameterValue();&#xD; parameterValue.parameter =
                  parameter;&#xD; this.setParameterValue(parameterValue);&#xD;
                  outputs.addValue(parameterValue);&#xD; }&#xD; }&#xD; &#xD;
                  this.doBody(inputs, outputs);&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody"
              name="doBody" isAbstract="true"
              class="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody">
                <body>The actual definition of the behavior of an Opaque Behavior should be given in
                  a concrete subclass that defines this operation.&#xD; The values of the
                  inputParameters are set when the operation is called.&#xD; The values of the
                  outputParmeters should be set during the execution of the operation.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-inputParameters"
                name="inputParameters"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-inputParameters-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-inputParameters-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-outputParameters"
                name="outputParameters"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-outputParameters-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution-doBody-outputParameters-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution" name="Execution"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <body>An execution is used to execute a specific behavior. Since a behavior is a kind
                of class, an execution is an object with the behavior as its type.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; &#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-_generalization.0"
              general="Semantics-Classes-Kernel-Object"
              specific="Semantics-CommonBehaviors-BasicBehaviors-Execution"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-context" name="context"
              type="Semantics-Classes-Kernel-Object"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-context-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-context">
                <body>The object that provides the context for this execution. &#xD; The type of
                  the context of the execution must be the context of the type (behavior) of the
                  execution.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-context-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-context-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues"
              name="parameterValues" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
              aggregation="composite"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues">
                <body>The parameterValues for this execution. All parameterValues must have a
                  parameter that is a parameter of the type of this execution.&#xD; The values
                  of all input (in and in-out) parameters must be set before the execution is
                  executed.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-execute" name="execute"
              isAbstract="true" class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-execute-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-execute">
                <body>Execute the behavior given by the type of this execution. &#xD; The
                  parameterValues for any input (in or in-out) parameters of the behavior should be
                  set before the execution.&#xD; The parameteValues for any output (in-out, out
                  or return) parameters of the behavior will be set by the execution.&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-terminate" name="terminate"
              class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-terminate-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-terminate">
                <body>// Terminate an ongoing execution. By default, do nothing.&#xD; &#xD;
                  return;&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-copy" name="copy"
              class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-copy-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-copy">
                <body>// Create a new execution that has the same behavior and parameterValues as
                  this execution.&#xD; &#xD; // Debug.println("[Copy] execution = " +
                  this);&#xD; &#xD; Execution newValue = (Execution)(super.copy());&#xD;
                  &#xD; newValue.context = this.context;&#xD; &#xD; ParameterValueList
                  parameterValues = this.parameterValues;&#xD; for (int i = 0; i &lt;
                  parameterValues.size(); i++) {&#xD; ParameterValue parameterValue =
                  parameterValues.getValue(i);&#xD;
                  newValue.parameterValues.addValue(parameterValue.copy());&#xD; }&#xD;
                  &#xD; // Debug.println("[Copy] Done.");&#xD; &#xD; return
                  newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-new_" name="new_"
              isAbstract="true" class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-new_-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-new_">
                <body>Create a new execution with no behavior or parameterValues.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-new_-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-setParameterValue"
              name="setParameterValue" class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-setParameterValue-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-setParameterValue">
                <body>// Set the given parameter value for this execution.&#xD; // If a
                  parameter value already existed for the parameter of the given parameter value,
                  then replace its value.&#xD; &#xD; // Debug.println("[setParameterValue]
                  parameter = " + parameterValue.parameter.name + " with " +
                  parameterValue.values.size() + " values");&#xD; &#xD; ParameterValue
                  existingParameterValue =
                  this.getParameterValue(parameterValue.parameter);&#xD; &#xD; if
                  (existingParameterValue == null) {&#xD;
                  this.parameterValues.addValue(parameterValue);&#xD; }&#xD; else {&#xD;
                  existingParameterValue.values = parameterValue.values;&#xD; }&#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-setParameterValue-parameterValue"
                name="parameterValue" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getParameterValue"
              name="getParameterValue" class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getParameterValue-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-getParameterValue">
                <body>// Get the parameter value of this execution corresponding to the given
                  parameter (if any).&#xD; &#xD; ParameterValue parameterValue =
                  null;&#xD; int i = 1;&#xD; while (parameterValue == null &amp; i
                  &lt;= this.parameterValues.size()) {&#xD; if
                  (this.parameterValues.getValue(i-1).parameter == parameter) {&#xD;
                  parameterValue = this.parameterValues.getValue(i-1);&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; return parameterValue;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getParameterValue-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getParameterValue-parameter"
                name="parameter" type="Syntax-Classes-Kernel-Parameter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues"
              name="getOutputParameterValues"
              class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues">
                <body>// Return the parameter values for output (in-out, out and return)
                  parameters.&#xD; &#xD; ParameterValueList outputs = new
                  ParameterValueList();&#xD; ParameterValueList parameterValues =
                  this.parameterValues;&#xD; for (int i = 0; i &lt; parameterValues.size();
                  i++) {&#xD; ParameterValue parameterValue =
                  parameterValues.getValue(i);&#xD; Parameter parameter =
                  parameterValue.parameter;&#xD; if ((parameter.direction ==
                  ParameterDirectionKind.inout) |&#xD; (parameter.direction ==
                  ParameterDirectionKind.out) |&#xD; (parameter.direction ==
                  ParameterDirectionKind.return_)) {&#xD;
                  outputs.addValue(parameterValue);&#xD; }&#xD; }&#xD; &#xD; return
                  outputs;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getOutputParameterValues-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getBehavior"
              name="getBehavior" class="Semantics-CommonBehaviors-BasicBehaviors-Execution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getBehavior-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-BasicBehaviors-Execution-getBehavior">
                <body>// Get the behavior that is the type of this execution.&#xD; &#xD;
                  return (Behavior)(this.getTypes().getValue(0));</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-Execution-getBehavior-ReturnResult"
                name="ReturnResult" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution"
            name="A_context_execution" visibility="private"
            memberEnd="Semantics-CommonBehaviors-BasicBehaviors-Execution-context Semantics-CommonBehaviors-BasicBehaviors-A_context_execution-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              owningAssociation="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_context_execution-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution"
            name="A_parameterValues_execution" visibility="private"
            memberEnd="Semantics-CommonBehaviors-BasicBehaviors-Execution-parameterValues Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              owningAssociation="Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_parameterValues_execution"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue"
            name="A_parameter_parameterValue" visibility="private"
            memberEnd="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-parameter Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
              owningAssociation="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_parameter_parameterValue-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue"
            name="A_values_parameterValue" visibility="private"
            memberEnd="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue-values Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue"
              owningAssociation="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue"
              association="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-BasicBehaviors-A_values_parameterValue-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-CommonBehaviors-Communications"
          name="Communications">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-CommonBehaviors-Communications-_packageImport.0"
            importedPackage="Semantics-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-CommonBehaviors-Communications"> </packageImport>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-CommonBehaviors-Communications-_packageImport.1"
            importedPackage="Syntax-CommonBehaviors-Communications"
            importingNamespace="Semantics-CommonBehaviors-Communications"> </packageImport>
          <packagedElement xmi:type="uml:Activity"
            xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity"
            name="ClassifierBehaviorExecutionActivity">
            <ownedBehavior xmi:type="uml:Activity"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-OwnedBehaviorActivity1"
              name="OwnedBehaviorActivity1"/>
            <node xmi:type="uml:CallOperationAction"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-Call20_startBehavior"
              name="Call _startBehavior"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity"
              outgoing="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.1"
              operation="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-_startObjectBehavior">
              <target xmi:type="uml:InputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-Call20_startBehavior-_target"
                incoming="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.2"
                type="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution">
                <upperBound xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-Call20_startBehavior-_target-_upperBound"
                  value="1024"/>
              </target>
            </node>
            <node xmi:type="uml:ActivityFinalNode"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_node.1"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity"
              incoming="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.1"/>
            <node xmi:type="uml:ReadSelfAction"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-ReadSelf"
              name="ReadSelf"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity"
              incoming="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.0">
              <result xmi:type="uml:OutputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-ReadSelf-_result"
                outgoing="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.2"
              />
            </node>
            <node xmi:type="uml:InitialNode"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_node.3"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity"
              outgoing="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.0"/>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.0"
              source="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_node.3"
              target="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-ReadSelf"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.0-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.0-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.1"
              source="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-Call20_startBehavior"
              target="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_node.1"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.1-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.1-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ObjectFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.2"
              source="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-ReadSelf-_result"
              target="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-Call20_startBehavior-_target"
              activity="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.2-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecutionActivity-_edge.2-_weight"
                value="1"/>
            </edge>
          </packagedElement>
          <packagedElement xmi:type="uml:Activity"
            xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
            name="EventDispatchLoop">
            <node xmi:type="uml:InitialNode"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.0"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
              outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.3"/>
            <node xmi:type="uml:CallOperationAction"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send"
              name="Call _send"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
              outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.0"
              operation="Semantics-CommonBehaviors-Communications-ObjectActivation-_send">
              <argument xmi:type="uml:InputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-signal"
                name="signal"
                incoming="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.4"
                type="Semantics-CommonBehaviors-Communications-ArrivalSignal" ordering="unordered">
                <upperBound xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-signal-_upperBound"
                  value="1"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-signal-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-signal-_lowerValue"
                  value="1"/>
              </argument>
              <target xmi:type="uml:InputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-_target"
                incoming="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.1"
                type="Semantics-CommonBehaviors-Communications-ObjectActivation">
                <upperBound xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-_target-_upperBound"
                  value="1024"/>
              </target>
            </node>
            <node xmi:type="uml:ReadSelfAction"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-ReadSelf"
              name="ReadSelf" activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
              incoming="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.2">
              <result xmi:type="uml:OutputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-ReadSelf-_result"
                outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.1"
                type="Semantics-CommonBehaviors-Communications-ObjectActivation"/>
            </node>
            <node xmi:type="uml:AcceptEventAction"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal"
              name="Accept ArrivalSignal"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
              outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.2"
              incoming="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.5">
              <result xmi:type="uml:OutputPin"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal-_result.0"
                outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.4"
                type="Semantics-CommonBehaviors-Communications-ArrivalSignal">
                <upperBound xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal-_result.0-_upperBound"
                  value="1"/>
              </result>
              <trigger xmi:type="uml:Trigger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal-_trigger.0"
                name="" event="Semantics-CommonBehaviors-Communications-ArrivalSignalEvent"/>
            </node>
            <node xmi:type="uml:MergeNode"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.4"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop"
              outgoing="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.5"
              incoming="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.3 Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.0"/>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.0"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.4"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.0-_guard"/>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.0-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ObjectFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.1"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-ReadSelf-_result"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-_target"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.1-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.1-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.2"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-ReadSelf"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.2-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.2-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.3"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.0"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.4"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.3-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.3-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ObjectFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.4"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal-_result.0"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Call20_send-signal"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.4-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.4-_weight"
                value="1"/>
            </edge>
            <edge xmi:type="uml:ControlFlow"
              xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.5"
              source="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_node.4"
              target="Semantics-CommonBehaviors-Communications-EventDispatchLoop-Accept20ArrivalSignal"
              activity="Semantics-CommonBehaviors-Communications-EventDispatchLoop">
              <guard xmi:type="uml:OpaqueExpression"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.5-_guard">
                <body/>
              </guard>
              <weight xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-EventDispatchLoop-_edge.5-_weight"
                value="1"/>
            </edge>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter" name="EventAccepter"
            isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-Communications-EventAccepter">
              <body>An event accepter handles signal reception events.&#xD; This is an abstract
                class intended to provide a common interface for different kinds of event
              accepters.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-accept" name="accept"
              isAbstract="true" class="Semantics-CommonBehaviors-Communications-EventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-accept-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-EventAccepter-accept">
                <body>Accept a signal occurance for the given signal instance.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-accept-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-match" name="match"
              isAbstract="true" class="Semantics-CommonBehaviors-Communications-EventAccepter">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-match-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-EventAccepter-match">
                <body>Determine if the given signal instance matches a trigger of this event
                  accepter.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-match-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-EventAccepter-match-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution"
            name="ClassifierBehaviorExecution" isActive="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution">
              <body>A classifier behavior execution executes the classifier behavior from a specific
                active class. </body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution"
              name="execution" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
              association="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution">
                <body>The execution of the associated classifier behavior for a certain
                object.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier"
              name="classifier" type="Syntax-Classes-Kernel-Class"
              association="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier">
                <body>The classifier whose behavior is being executed. (This must be an active
                  class.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation"
              name="objectActivation"
              type="Semantics-CommonBehaviors-Communications-ObjectActivation"
              association="Semantics-CommonBehaviors-Communications-A_classifierBehaviorExecutions_objectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation">
                <body>The object activation that owns this classifier behavior execution.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation-_lowerValue"
              />
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute"
              name="execute"
              class="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute">
                <body>// Set the classifier for this classifier behavior execution to the given
                  class.&#xD; // If the given class is a behavior, set the execution to be the
                  object of the object activation of the classifier behavior execution.&#xD; //
                  Otherwise the class must be an active class, so get an execution object for the
                  classifier behavior for the class.&#xD; // Set the input parameters for the
                  execution to the given values.&#xD; // Then start the active behavior of this
                  ClassifierBehaviorExecution object, which will execute the execution object on a
                  separate thread of control.&#xD; &#xD; // Debug.println("[execute]
                  Executing behavior for " + classifier.name + "...");&#xD; &#xD;
                  this.classifier = classifier;&#xD; Object_ object =
                  this.objectActivation.object;&#xD; &#xD; if (classifier instanceof
                  Behavior) {&#xD; this.execution = (Execution)object;&#xD; } else
                  {&#xD; this.execution =
                  object.locus.factory.createExecution(classifier.classifierBehavior,
                  object);&#xD; }&#xD; &#xD; if (inputs != null) {&#xD; for (int i =
                  0; i &lt; inputs.size(); i++) {&#xD; ParameterValue input =
                  inputs.getValue(i);&#xD; this.execution.setParameterValue(input);&#xD;
                  }&#xD; }&#xD; &#xD; _startObjectBehavior();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Class"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute-inputs"
                name="inputs" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute-inputs-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execute-inputs-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-terminate"
              name="terminate"
              class="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-terminate-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-terminate">
                <body>// Terminate the associated execution.&#xD; // If the execution is not
                  itself the object of the object activation, then destroy it.&#xD; &#xD;
                  //Debug.println("[terminate] Terminating behavior for " + classifier.name +
                  "...");&#xD; &#xD; this.execution.terminate();&#xD; &#xD; if
                  (this.execution != this.objectActivation.object) {&#xD;
                  this.execution.destroy();&#xD; }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-_startObjectBehavior"
              name="_startObjectBehavior"
              class="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-_startObjectBehavior-_ownedComment.0">
                <body>// *** This should start the asynchronous ClassifierBehaviorExecutionActivity
                  to do the following. ***&#xD; this.execution.execute();</body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Signal"
            xmi:id="Semantics-CommonBehaviors-Communications-ArrivalSignal" name="ArrivalSignal"
            visibility="private"/>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance" name="SignalInstance">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-_ownedComment.0">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-_generalization.0"
              general="Semantics-Classes-Kernel-CompoundValue"
              specific="Semantics-CommonBehaviors-Communications-SignalInstance"/>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-type" name="type"
              type="Syntax-CommonBehaviors-Communications-Signal"
              association="Semantics-CommonBehaviors-Communications-A_type_signalInstance">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-type-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-type-_lowerValue"
                value="1"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes"
              name="getTypes" class="Semantics-CommonBehaviors-Communications-SignalInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes">
                <body>// Return the single type of this signal instance.&#xD; &#xD;
                  ClassifierList types = new ClassifierList();&#xD; &#xD;
                  types.addValue(this.type);&#xD; &#xD; return types;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-Classifier" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes-ReturnResult-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-getTypes-ReturnResult-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-new_" name="new_"
              class="Semantics-CommonBehaviors-Communications-SignalInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-new_-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-SignalInstance-new_">
                <body>// Create a new signal instance with no type or feature values.&#xD;
                  &#xD; return new SignalInstance();</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-new_-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-copy" name="copy"
              class="Semantics-CommonBehaviors-Communications-SignalInstance">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-copy-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-SignalInstance-copy">
                <body>// Create a new signal instance with the same type and feature values as this
                  signal instance.&#xD; &#xD; SignalInstance newValue =
                  (SignalInstance)(super.copy());&#xD; &#xD; newValue.type =
                  this.type;&#xD; &#xD; return newValue;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-SignalInstance-copy-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Value" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation"
            name="ObjectActivation" isActive="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <body>An object activation handles the active behavior of an active object.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_ownedComment.1">
              <body>import java.util.Iterator;&#xD; &#xD; import fUML.Syntax.*;&#xD;
                import fUML.Syntax.Classes.Kernel.*;&#xD; import
                fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Syntax.CommonBehaviors.Communications.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions"
              name="classifierBehaviorExecutions"
              type="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution"
              aggregation="composite"
              association="Semantics-CommonBehaviors-Communications-A_classifierBehaviorExecutions_objectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions">
                <body>The executing classifier behaviors for this object activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters"
              name="waitingEventAccepters" visibility="public"
              type="Semantics-CommonBehaviors-Communications-EventAccepter"
              association="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters">
                <body>The set of event accepters waiting for signals to be received by the object of
                  this object activation.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool"
              name="eventPool" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              isOrdered="true" aggregation="composite"
              association="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool">
                <body>The pool of signals sent to the object of this object activation, pending
                  dispatching as events.&#xD; (All the data values in the pool must be signal
                  instances -- that is, they must have a single type that is a signal.)</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-object"
              name="object" type="Semantics-Classes-Kernel-Object"
              association="Semantics-Classes-Kernel-A_objectActivation_object">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-object-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-object">
                <body>The object whose active behavior is being handled by this active
                object.</body>
              </ownedComment>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior"
              name="startBehavior" class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior">
                <body>// Start the event dispatch loop for this object activation (if it has not
                  already been started).&#xD; // If a classifier is given that is a type of the
                  object of this object activation and there is not already a classifier behavior
                  execution for it, &#xD; // then create a classifier behavior execution for
                  it.&#xD; // Otherwise, create a classifier behavior execution for each of the
                  types of the object of this object activation which has a classifier behavior or
                  which is a behavior itself &#xD; // and for which there is not currently a
                  classifier behavior execution.&#xD; &#xD; // Start
                  EventDispatchLoop&#xD; _startObjectBehavior();&#xD; &#xD; if
                  (classifier == null) {&#xD; Debug.println("[startBehavior] Starting behavior
                  for all classifiers...");&#xD; // *** Start all classifier behaviors
                  concurrently. ***&#xD; Class_List types = this.object.types;&#xD; for
                  (Iterator i = types.iterator(); i.hasNext();) {&#xD; Class_ type =
                  (Class_)i.next();&#xD; if (type instanceof Behavior | type.classifierBehavior
                  != null) {&#xD; this.startBehavior(type, new ParameterValueList());&#xD;
                  }&#xD; }&#xD; }&#xD; else {&#xD; Debug.println("[startBehavior]
                  Starting behavior for " + classifier.name + "...");&#xD; &#xD; boolean
                  notYetStarted = true;&#xD; int i = 1;&#xD; while (notYetStarted &amp;
                  i &lt;= this.classifierBehaviorExecutions.size()) {&#xD; notYetStarted =
                  (this.classifierBehaviorExecutions.getValue(i-1).classifier !=
                  classifier);&#xD; i = i + 1;&#xD; }&#xD; &#xD; if (notYetStarted)
                  {&#xD; ClassifierBehaviorExecution newExecution = new
                  ClassifierBehaviorExecution();&#xD; newExecution.objectActivation =
                  this;&#xD; this.classifierBehaviorExecutions.addValue(newExecution);&#xD;
                  newExecution.execute(classifier, inputs);&#xD; }&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-classifier"
                name="classifier" type="Syntax-Classes-Kernel-Class">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-classifier-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-classifier-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-inputs"
                name="inputs" type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-inputs-_upperValue"
                  value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-startBehavior-inputs-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-stop" name="stop"
              class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-stop-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-stop">
                <body>// Stop this object activation by terminating all classifier behavior
                  executions.&#xD; &#xD; ClassifierBehaviorExecutionList
                  classifierBehaviorExecutions = this.classifierBehaviorExecutions;&#xD; for
                  (int i = 0; i &lt; classifierBehaviorExecutions.size(); i++) {&#xD;
                  ClassifierBehaviorExecution classifierBehaviorExecution =
                  classifierBehaviorExecutions.getValue(i);&#xD;
                  classifierBehaviorExecution.terminate();&#xD; }&#xD; &#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-register"
              name="register" class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-register-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-register">
                <body>// Register the given event accepter to wait for a dispatched signal
                  event.&#xD; &#xD; Debug.println("[register] object = " +
                  this.object);&#xD; Debug.println("[register] accepter = " +
                  accepter);&#xD; &#xD;
                  this.waitingEventAccepters.addValue(accepter);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-register-accepter"
                name="accepter" type="Semantics-CommonBehaviors-Communications-EventAccepter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-unregister"
              name="unregister" class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-unregister-_ownedComment.0">
                <body>// Remove the given event accepter for the list of waiting event
                  accepters.&#xD; &#xD; Debug.println("[unregister] object = " +
                  this.object);&#xD; Debug.println("[unregister] accepter = " +
                  accepter);&#xD; &#xD; boolean notFound = true;&#xD; int i =
                  1;&#xD; while (notFound &amp; i &lt;=
                  this.waitingEventAccepters.size()) {&#xD; if
                  (this.waitingEventAccepters.getValue(i-1) == accepter) {&#xD;
                  this.waitingEventAccepters.remove(i-1);&#xD; notFound = false;&#xD;
                  }&#xD; i = i + 1;&#xD; }&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-unregister-accepter"
                name="accepter" type="Semantics-CommonBehaviors-Communications-EventAccepter"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-send" name="send"
              class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-send-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-send">
                <body>// Add the given signal instance to the event pool and signal that a new
                  signal instance has arrived.&#xD; &#xD;
                  this.eventPool.addValue((SignalInstance)(signalInstance.copy()));&#xD;
                  _send(new ArrivalSignal());&#xD; &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-send-signalInstance"
                name="signalInstance" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-dispatchNextEvent"
              name="dispatchNextEvent"
              class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-dispatchNextEvent-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-ObjectActivation-dispatchNextEvent">
                <body>// Get the next signal instance out of the event pool.&#xD; // If there is
                  one or more waiting event accepters with triggers that match the signal instance,
                  then dispatch it to exactly one of those waiting accepters.&#xD; &#xD; if
                  (this.eventPool.size() &gt; 0) {&#xD; SignalInstance signalInstance =
                  this.getNextEvent();&#xD; &#xD; Debug.println("[dispatchNextEvent]
                  signalInstance = " + signalInstance);&#xD; &#xD; intList
                  matchingEventAccepterIndexes = new intList();&#xD; EventAccepterList
                  waitingEventAccepters = this.waitingEventAccepters;&#xD; for (int i = 0; i
                  &lt; waitingEventAccepters.size(); i++) {&#xD; EventAccepter eventAccepter
                  = waitingEventAccepters.getValue(i);&#xD; if
                  (eventAccepter.match(signalInstance)) {&#xD;
                  matchingEventAccepterIndexes.addValue(i);&#xD; }&#xD; }&#xD; &#xD;
                  if (matchingEventAccepterIndexes.size() &gt; 0) {&#xD; // *** Choose one
                  matching event accepter non-deterministically. ***&#xD; int j =
                  ((ChoiceStrategy)this.object.locus.factory.getStrategy("choice")).choose(matchingEventAccepterIndexes.size());&#xD;
                  EventAccepter selectedEventAccepter =
                  this.waitingEventAccepters.getValue(matchingEventAccepterIndexes.getValue(j-1));&#xD;
                  this.waitingEventAccepters.removeValue(j-1);&#xD;
                  selectedEventAccepter.accept(signalInstance);&#xD; }&#xD; }&#xD;
                </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-getNextEvent"
              name="getNextEvent" class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-getNextEvent-_ownedComment.0">
                <body>// Get the next event from the event pool, using a get next event
                  strategy.&#xD; &#xD; return
                  ((GetNextEventStrategy)this.object.locus.factory.getStrategy("getNextEvent")).getNextEvent(this);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-getNextEvent-OwnedParameter"
                name="OwnedParameter" type="Semantics-CommonBehaviors-Communications-SignalInstance"
                direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_startObjectBehavior"
              name="_startObjectBehavior"
              class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_startObjectBehavior-_ownedComment.0">
                <body>// *** This should start the EventDispatchLoop ***&#xD; &#xD;
                return;</body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_send" name="_send"
              class="Semantics-CommonBehaviors-Communications-ObjectActivation">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_send-_ownedComment.0">
                <body>// Signal the arrival of a new signal instance in the event pool.&#xD;
                  &#xD; // *** This should send an ArrivalSignal to the EventDispatchLoop to do
                  the following asynchronously. ***&#xD; this.dispatchNextEvent();&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_send-signal"
                name="signal" type="Semantics-CommonBehaviors-Communications-ArrivalSignal"/>
            </ownedOperation>
            <ownedReception xmi:type="uml:Reception"
              xmi:id="Semantics-CommonBehaviors-Communications-ObjectActivation-_ownedReception.0"
              signal="Semantics-CommonBehaviors-Communications-ArrivalSignal"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_classifierBehaviorExecutions_objectActivation"
            name="A_classifierBehaviorExecutions_objectActivation" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-ObjectActivation-classifierBehaviorExecutions Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-objectActivation"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation"
            name="A_waitingEventAcceptors_objectActivation" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-ObjectActivation-waitingEventAccepters Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-Communications-ObjectActivation"
              owningAssociation="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation"
              association="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-A_waitingEventAcceptors_objectActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation"
            name="A_eventPool_objectActivation" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-ObjectActivation-eventPool Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-Communications-ObjectActivation"
              owningAssociation="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation"
              association="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-A_eventPool_objectActivation-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_type_signalInstance"
            name="A_type_signalInstance" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-SignalInstance-type Semantics-CommonBehaviors-Communications-A_type_signalInstance-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-A_type_signalInstance-_ownedEnd.0"
              visibility="private" type="Semantics-CommonBehaviors-Communications-SignalInstance"
              owningAssociation="Semantics-CommonBehaviors-Communications-A_type_signalInstance"
              association="Semantics-CommonBehaviors-Communications-A_type_signalInstance">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-A_type_signalInstance-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-A_type_signalInstance-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution"
            name="A_classifier_classifierBehaviorExecution" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-classifier Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution-_ownedEnd.0"
              visibility="private"
              type="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution"
              owningAssociation="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution"
              association="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-A_classifier_classifierBehaviorExecution-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution"
            name="A_execution_classifierBehaviorExecution" visibility="private"
            memberEnd="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution-execution Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution-_ownedEnd.0"
              visibility="private"
              type="Semantics-CommonBehaviors-Communications-ClassifierBehaviorExecution"
              owningAssociation="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution"
              association="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution-_ownedEnd.0-_upperValue"
                value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-CommonBehaviors-Communications-A_execution_classifierBehaviorExecution-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:SignalEvent"
            xmi:id="Semantics-CommonBehaviors-Communications-ArrivalSignalEvent"
            name="ArrivalSignalEvent"
            signal="Semantics-CommonBehaviors-Communications-ArrivalSignal"/>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy"
            name="GetNextEventStrategy" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-Communications-GetNextEventStrategy">
              <body>A get next event strategy is a semantic strategy that determines the order in
                which signal instances are retrieved from the event pool of an object
              activation.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticStrategy"
              specific="Semantics-CommonBehaviors-Communications-GetNextEventStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getName"
              name="getName" class="Semantics-CommonBehaviors-Communications-GetNextEventStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getName-_ownedComment.0">
                <body>// Get next event strategies are always named "getNextEvent".&#xD;
                  &#xD; return "getNextEvent";&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getName-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getNextEvent"
              name="getNextEvent" isAbstract="true"
              class="Semantics-CommonBehaviors-Communications-GetNextEventStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getNextEvent-_ownedComment.0"
                annotatedElement="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getNextEvent">
                <body>Get the next event from the event pool of the given object activation. The
                  event is removed from the pool.&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getNextEvent-objectActivation"
                name="objectActivation"
                type="Semantics-CommonBehaviors-Communications-ObjectActivation"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-GetNextEventStrategy-getNextEvent-OwnedParameter"
                name="OwnedParameter" type="Semantics-CommonBehaviors-Communications-SignalInstance"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class"
            xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy"
            name="FIFOGetNextEventStrategy">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-_ownedComment.0"
              annotatedElement="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy">
              <body>A FIFO get next event strategy gets events in first-in first-out order.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-_generalization.0"
              general="Semantics-CommonBehaviors-Communications-GetNextEventStrategy"
              specific="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-getNextEvent"
              name="getNextEvent"
              class="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-getNextEvent-_ownedComment.0">
                <body>// Get the first event from the given event pool. The event is removed from
                  the pool.&#xD; &#xD; SignalInstance signalInstance =
                  objectActivation.eventPool.getValue(0);&#xD;
                  objectActivation.eventPool.removeValue(0);&#xD; return signalInstance;</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-getNextEvent-objectActivation"
                name="objectActivation"
                type="Semantics-CommonBehaviors-Communications-ObjectActivation"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-CommonBehaviors-Communications-FIFOGetNextEventStrategy-getNextEvent-OwnedParameter"
                name="OwnedParameter" type="Semantics-CommonBehaviors-Communications-SignalInstance"
                direction="return"/>
            </ownedOperation>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Loci" name="Loci">
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Loci-LociL1" name="LociL1">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL1-_packageImport.0"
            importedPackage="Syntax-CommonBehaviors-BasicBehaviors"
            importingNamespace="Semantics-Loci-LociL1"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL1-_packageImport.1" importedPackage="Syntax-Classes-Kernel"
            importingNamespace="Semantics-Loci-LociL1"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL1-_packageImport.2"
            importedPackage="Semantics-Classes-Kernel" importingNamespace="Semantics-Loci-LociL1"/>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-ChoiceStrategy"
            name="ChoiceStrategy" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-ChoiceStrategy">
              <body>A choice strategy is used to represent the behavior of making an arbitrary
                non-deterministic choice.&#xD; A valid execution may use ANY choice strategy for
                choosing one element from a given set.</body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-_generalization.0"
              general="Semantics-Loci-LociL1-SemanticStrategy"
              specific="Semantics-Loci-LociL1-ChoiceStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-getName" name="getName"
              class="Semantics-Loci-LociL1-ChoiceStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-getName-_ownedComment.0">
                <body>// The name of a choice strategy is always "choice".&#xD; &#xD; return
                  "choice";&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-getName-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-choose" name="choose" isAbstract="true"
              class="Semantics-Loci-LociL1-ChoiceStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-choose-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ChoiceStrategy-choose">
                <body>Choose an integer from 1 to the given size.&#xD; [The size must be greater
                  than 0.]</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-choose-size" name="size">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ChoiceStrategy-choose-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-ExecutionFactory"
            name="ExecutionFactory" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-ExecutionFactory">
              <body> An execution factory is used to create objects that represent the execution of
                a behavior, the evaluation of a value specification or the activation of an activity
                node.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-locus" name="locus"
              type="Semantics-Loci-LociL1-Locus" association="Semantics-Loci-LociL1-A_factory_locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-locus-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-locus">
                <body>The locus at which this factory resides.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-locus-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-locus-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes"
              name="primitiveBehaviorPrototypes"
              type="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution"
              association="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes">
                <body>The set of opaque behavior executions to be used to execute the primitive
                  behaviors known to the factory.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes-_lowerValue"
              />
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes" name="builtInTypes"
              type="Syntax-Classes-Kernel-PrimitiveType"
              association="Semantics-Loci-LociL1-A_builtInTypes_executionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes">
                <body>The set of primitive types that have corresponding literal value
                  specifications.&#xD; Must include Integer, Boolean, String and
                  UnlimitedNatural.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-strategies" name="strategies"
              visibility="public" type="Semantics-Loci-LociL1-SemanticStrategy"
              association="Semantics-Loci-LociL1-A_strategies_executionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-strategies-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-strategies">
                <body>The set of semantic strategies currently registered with this execution
                  factory.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-strategies-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-strategies-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution" name="createExecution"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-createExecution">
                <body>// Create an execution object for a given behavior. &#xD; // The execution
                  will take place at the locus of the factory in the given context.&#xD; // If
                  the context is empty, the execution is assumed to provide its own
                  context.&#xD; &#xD; Execution execution;&#xD; &#xD; if (behavior
                  instanceof OpaqueBehavior) {&#xD; execution =
                  this.instantiateOpaqueBehaviorExecution((OpaqueBehavior)behavior);&#xD;
                  }&#xD; else {&#xD; execution =
                  (Execution)this.instantiateVisitor(behavior);&#xD;
                  execution.types.addValue(behavior);&#xD;
                  execution.createFeatureValues();&#xD; }&#xD; &#xD;
                  this.locus.add(execution);&#xD; &#xD; if (context == null) {&#xD;
                  execution.context = execution;&#xD; }&#xD; else {&#xD;
                  execution.context = context;&#xD; }&#xD; &#xD; return
                  execution;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-ReturnResult"
                name="ReturnResult" type="Semantics-CommonBehaviors-BasicBehaviors-Execution"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-behavior"
                name="behavior" type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-context"
                name="context" type="Semantics-Classes-Kernel-Object">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-context-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createExecution-context-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createEvaluation"
              name="createEvaluation" class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createEvaluation-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-createEvaluation">
                <body>// Create an evaluation object for a given value specification. &#xD; //
                  The evaluation will take place at the locus of the factory.&#xD; &#xD;
                  Evaluation evaluation =
                  (Evaluation)this.instantiateVisitor(specification);&#xD; &#xD;
                  evaluation.specification = specification;&#xD; evaluation.locus =
                  this.locus;&#xD; &#xD; return evaluation;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createEvaluation-ReturnResult"
                name="ReturnResult" type="Semantics-Classes-Kernel-Evaluation" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-createEvaluation-specification"
                name="specification" type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateVisitor"
              name="instantiateVisitor" visibility="public" isAbstract="true"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateVisitor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-instantiateVisitor">
                <body>Instantiate a visitor object for the given element.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateVisitor-element"
                name="element" type="Syntax-Classes-Kernel-Element"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateVisitor-ReturnResult"
                name="ReturnResult" type="Semantics-Loci-LociL1-SemanticVisitor" direction="return"
              />
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateOpaqueBehaviorExecution"
              name="instantiateOpaqueBehaviorExecution" visibility="public"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateOpaqueBehaviorExecution-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-instantiateOpaqueBehaviorExecution">
                <body>// Return a copy of the prototype for the primitive behavior execution of the
                  given opaque behavior.&#xD; &#xD; OpaqueBehaviorExecution execution =
                  null;&#xD; int i = 1;&#xD; while (execution == null &amp; i &lt;=
                  this.primitiveBehaviorPrototypes.size()) {&#xD; //
                  Debug.println("[instantiateOpaqueExecution] Checking " +
                  this.primitiveBehaviorPrototypes.getValue(i).objectId() + "...");&#xD;
                  OpaqueBehaviorExecution prototype =
                  this.primitiveBehaviorPrototypes.getValue(i-1);&#xD; if
                  (prototype.getBehavior() == behavior) {&#xD; execution =
                  (OpaqueBehaviorExecution)(prototype.copy());&#xD; }&#xD; i = i +
                  1;&#xD; }&#xD; &#xD; if (execution == null) {&#xD;
                  Debug.println("[instantiateOpaqueExecution] No prototype execution found for " +
                  behavior.name + ".");&#xD; }&#xD; &#xD; return execution;&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateOpaqueBehaviorExecution-ReturnResult"
                name="ReturnResult"
                type="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution"
                direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-instantiateOpaqueBehaviorExecution-behavior"
                name="behavior" type="Syntax-CommonBehaviors-BasicBehaviors-OpaqueBehavior"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addPrimitiveBehaviorPrototype"
              name="addPrimitiveBehaviorPrototype" class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addPrimitiveBehaviorPrototype-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-addPrimitiveBehaviorPrototype">
                <body>// Add an opaque behavior execution to use as a prototype for instantiating
                  the corresponding primitive opaque behavior.&#xD; // Precondition: No
                  primitive behavior prototype for the type of the given execution should already
                  exist.&#xD; &#xD;
                  this.primitiveBehaviorPrototypes.addValue(execution);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addPrimitiveBehaviorPrototype-execution"
                name="execution"
                type="Semantics-CommonBehaviors-BasicBehaviors-OpaqueBehaviorExecution"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addBuiltInType" name="addBuiltInType"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addBuiltInType-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-addBuiltInType">
                <body>// Add the given primitive type as a built-in type.&#xD; // Precondition:
                  No built-in type with the same name should already exist.&#xD; &#xD;
                  this.builtInTypes.addValue(type);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-addBuiltInType-type" name="type"
                type="Syntax-Classes-Kernel-PrimitiveType"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType" name="getBuiltInType"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType">
                <body>// Return the built-in type with the given name.&#xD; &#xD;
                  PrimitiveType type = null;&#xD; int i = 1;&#xD; while (type == null
                  &amp; i &lt;= this.builtInTypes.size()) {&#xD; PrimitiveType
                  primitiveType = this.builtInTypes.getValue(i-1);&#xD; if
                  (primitiveType.name.equals(name)) {&#xD; type = primitiveType;&#xD;
                  }&#xD; i = i + 1;&#xD; }&#xD; &#xD; return type;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType-ReturnResult"
                name="ReturnResult" type="Syntax-Classes-Kernel-PrimitiveType" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType-ReturnResult-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType-ReturnResult-_lowerValue"
                />
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getBuiltInType-name" name="name">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-setStrategy" name="setStrategy"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-setStrategy-_ownedComment.0">
                <body>// Set the strategy for a semantic variation point. Any existing strategy for
                  the same SVP is replaced.&#xD; &#xD; int i =
                  this.getStrategyIndex(strategy.getName());&#xD; &#xD; if (i &lt;=
                  this.strategies.size()) {&#xD; this.strategies.removeValue(i-1);&#xD;
                  }&#xD; &#xD; this.strategies.addValue(strategy);&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-setStrategy-strategy" name="strategy"
                type="Semantics-Loci-LociL1-SemanticStrategy"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy" name="getStrategy"
              class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy-_ownedComment.0">
                <body>// Get the strategy with the given name.&#xD; &#xD; int i =
                  this.getStrategyIndex(name);&#xD; &#xD; SemanticStrategy strategy =
                  null;&#xD; if (i &lt;= this.strategies.size()) {&#xD; strategy =
                  this.strategies.getValue(i-1);&#xD; }&#xD; &#xD; return
                  strategy;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy-name" name="name">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy-OwnedParameter"
                name="OwnedParameter" type="Semantics-Loci-LociL1-SemanticStrategy"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy-OwnedParameter-_upperValue"
                  value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategy-OwnedParameter-_lowerValue"
                />
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategyIndex"
              name="getStrategyIndex" class="Semantics-Loci-LociL1-ExecutionFactory">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategyIndex-_ownedComment.0">
                <body>// Get the index of the strategy with the given name.&#xD; // If there is
                  no such strategy, return the size of the strategies list.&#xD; &#xD;
                  SemanticStrategyList strategies = this.strategies;&#xD; &#xD; int i =
                  1;&#xD; boolean unmatched = true;&#xD; while (unmatched &amp; (i
                  &lt;= strategies.size())) {&#xD; if
                  (strategies.getValue(i-1).getName().equals(name)) {&#xD; unmatched =
                  false;&#xD; } else {&#xD; i = i + 1;&#xD; }&#xD; }&#xD;
                  &#xD; return i;&#xD; &#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategyIndex-name" name="name">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactory-getStrategyIndex-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-Executor"
            name="Executor">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-Executor-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-Executor">
              <body>An executor is used to execute behaviors and evaluation value
              specifications.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-Executor-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Loci-LociL1-Executor-locus"
              name="locus" type="Semantics-Loci-LociL1-Locus"
              association="Semantics-Loci-LociL1-A_executor_locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Executor-locus-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Executor-locus">
                <body>The locus at which this executor resides.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-Executor-locus-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-Executor-locus-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Executor-execute"
              name="execute" class="Semantics-Loci-LociL1-Executor">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Executor-execute-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Executor-execute">
                <body>// Execute the given behavior with the given input values in the given
                  context, producing the given output values. &#xD; // There must be one input
                  parameter value for each input (in or in-out) parameter of the behavior.&#xD;
                  // The returned values include one parameter value for each output (in-out, out or
                  return) parameter of the behavior.&#xD; // The execution instance is destroyed
                  at completion.&#xD; &#xD; Execution execution =
                  this.locus.factory.createExecution(behavior, context);&#xD; &#xD; for (int
                  i = 0; i &lt; inputs.size(); i++) {&#xD;
                  execution.setParameterValue(inputs.getValue(i));&#xD; }&#xD; &#xD;
                  execution.execute();&#xD; ParameterValueList outputValues =
                  execution.getOutputParameterValues();&#xD; execution.destroy();&#xD;
                  &#xD; return outputValues;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-execute-behavior" name="behavior"
                type="Syntax-CommonBehaviors-BasicBehaviors-Behavior"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-execute-context" name="context"
                type="Semantics-Classes-Kernel-Object">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-context-_upperValue" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-context-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-execute-inputs" name="inputs"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue" isOrdered="true">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-inputs-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-inputs-_lowerValue"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-execute-ReturnResult" name="ReturnResult"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue" isOrdered="true"
                direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-ReturnResult-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-Executor-execute-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-Executor-evaluate" name="evaluate"
              class="Semantics-Loci-LociL1-Executor">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Executor-evaluate-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Executor-evaluate">
                <body>// Evaluate the given value specification, returning the specified
                  value.&#xD; &#xD; // Debug.println("[evaluate] Start...");&#xD; return
                  this.locus.factory.createEvaluation(specification).evaluate();&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-evaluate-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Value" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-evaluate-specification" name="specification"
                type="Syntax-Classes-Kernel-ValueSpecification"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Executor-start"
              name="start" class="Semantics-Loci-LociL1-Executor">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Executor-start-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Executor-start">
                <body>// Instantiate the given class and start any behavior of the resulting
                  object.&#xD; // (The behavior of an object includes any classifier behaviors
                  for an active object or the class of the object itself, if that is a
                  behavior.)&#xD; &#xD; Debug.println("[start] Starting " + type.name +
                  "...");&#xD; &#xD; Object_ object = this.locus.instantiate(type);&#xD;
                  &#xD; Debug.println("[start] Object = " + object);&#xD;
                  object.startBehavior(type, inputs);&#xD; &#xD; Reference reference = new
                  Reference();&#xD; reference.referent = object;&#xD; &#xD; return
                  reference;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-start-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Reference" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-start-type" name="type"
                type="Syntax-Classes-Kernel-Class"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Executor-start-inputs" name="inputs"
                type="Semantics-CommonBehaviors-BasicBehaviors-ParameterValue">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-Executor-start-inputs-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-Executor-start-inputs-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy"
            name="FirstChoiceStrategy">
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy-_generalization.0"
              general="Semantics-Loci-LociL1-ChoiceStrategy"
              specific="Semantics-Loci-LociL1-FirstChoiceStrategy"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy-choose" name="choose"
              class="Semantics-Loci-LociL1-FirstChoiceStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy-choose-_ownedComment.0">
                <body>// Always choose one.&#xD; &#xD; return 1;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy-choose-size" name="size">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-FirstChoiceStrategy-choose-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Integer"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-Locus" name="Locus">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-Locus-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-Locus">
              <body>A locus is a place at which extensional values (objects or links) can exist. The
                extent of a class or association is the set of objects or links of that type that
                exist at a certain locus.&#xD; A locus also has an executor and a factory
                associated with it, used to execute behaviors as a result of requests dispatched to
                objects at the locus.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-Locus-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import fUML.Semantics.Classes.Kernel.*;&#xD; import
                fUML.Semantics.CommonBehaviors.BasicBehaviors.*;&#xD; &#xD; </body>
            </ownedComment>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Loci-LociL1-Locus-executor"
              name="executor" type="Semantics-Loci-LociL1-Executor" aggregation="composite"
              association="Semantics-Loci-LociL1-A_executor_locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-executor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-executor">
                <body>The executor to be used at this locus.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-Locus-executor-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-Locus-executor-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property" xmi:id="Semantics-Loci-LociL1-Locus-factory"
              name="factory" type="Semantics-Loci-LociL1-ExecutionFactory" aggregation="composite"
              association="Semantics-Loci-LociL1-A_factory_locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-factory-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-factory">
                <body>The factory to be used at this locus.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-Locus-factory-_upperValue" value="1"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-Locus-factory-_lowerValue"/>
            </ownedAttribute>
            <ownedAttribute xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-Locus-extensionalValues" name="extensionalValues"
              type="Semantics-Classes-Kernel-ExtensionalValue" aggregation="composite"
              association="Semantics-Classes-Kernel-A_locus_extensionalValues">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-extensionalValues-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-extensionalValues">
                <body>The set of values that are members of classifier extents at this locus.</body>
              </ownedComment>
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-Locus-extensionalValues-_upperValue" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-Locus-extensionalValues-_lowerValue"/>
            </ownedAttribute>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-Locus-setExecutor" name="setExecutor"
              class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-setExecutor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-setExecutor">
                <body>// Set the executor for this locus.&#xD; &#xD; this.executor =
                  executor;&#xD; this.executor.locus = this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-setExecutor-executor" name="executor"
                type="Semantics-Loci-LociL1-Executor"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Locus-setFactory"
              name="setFactory" class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-setFactory-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-setFactory">
                <body>// Set the factory for this locus.&#xD; &#xD; this.factory =
                  factory;&#xD; this.factory.locus = this;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-setFactory-factory" name="factory"
                type="Semantics-Loci-LociL1-ExecutionFactory"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Locus-getExtent"
              name="getExtent" class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-getExtent-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-getExtent">
                <body>// Return the set of extensional values at this locus which have the given
                  classifier as a type.&#xD; &#xD; ExtensionalValueList extent = new
                  ExtensionalValueList();&#xD; &#xD; ExtensionalValueList extensionalValues
                  = this.extensionalValues;&#xD; for (int i = 0; i &lt;
                  extensionalValues.size(); i++) {&#xD; ExtensionalValue value =
                  extensionalValues.getValue(i);&#xD; ClassifierList types =
                  value.getTypes();&#xD; &#xD; boolean conforms = false;&#xD; int j =
                  1;&#xD; while (!conforms &amp; j &lt;= types.size()) {&#xD;
                  conforms = this.conforms(types.getValue(j-1), classifier);&#xD; j = j +
                  1;&#xD; }&#xD; &#xD; if (conforms) {&#xD;
                  extent.addValue(value);&#xD; }&#xD; }&#xD; &#xD; return
                  extent;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-getExtent-classifier" name="classifier"
                type="Syntax-Classes-Kernel-Classifier"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-getExtent-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-ExtensionalValue" direction="return">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                  xmi:id="Semantics-Loci-LociL1-Locus-getExtent-ReturnResult-_upperValue" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger"
                  xmi:id="Semantics-Loci-LociL1-Locus-getExtent-ReturnResult-_lowerValue"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Locus-add"
              name="add" class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-add-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-add">
                <body>// Add the given extensional value to this locus&#xD; &#xD;
                  value.locus = this;&#xD; this.extensionalValues.addValue(value);&#xD;
                </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-add-value" name="value"
                type="Semantics-Classes-Kernel-ExtensionalValue"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Locus-remove"
              name="remove" class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-remove-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-remove">
                <body>// Remove the given extensional value from this locus.&#xD; &#xD;
                  value.locus = null;&#xD; &#xD; boolean notFound = true;&#xD; int i =
                  1;&#xD; while (notFound &amp; i &lt;= this.extensionalValues.size())
                  {&#xD; if (this.extensionalValues.getValue(i-1) == value) {&#xD;
                  this.extensionalValues.remove(i-1);&#xD; notFound = false;&#xD; }&#xD;
                  i = i + 1;&#xD; }&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-remove-value" name="value"
                type="Semantics-Classes-Kernel-ExtensionalValue"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-Locus-instantiate" name="instantiate"
              class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-instantiate-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-instantiate">
                <body>// Instantiate the given class at this locus.&#xD; &#xD; Object_
                  object = null;&#xD; &#xD; if (type instanceof Behavior) {&#xD; object
                  = this.factory.createExecution((Behavior)type, null);&#xD; }&#xD; else
                  {&#xD; object = new Object_();&#xD; &#xD;
                  object.types.addValue(type);&#xD; object.createFeatureValues();&#xD;
                  this.add(object);&#xD; }&#xD; &#xD; return object;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-instantiate-ReturnResult" name="ReturnResult"
                type="Semantics-Classes-Kernel-Object" direction="return"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-instantiate-type" name="type"
                type="Syntax-Classes-Kernel-Class"/>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation" xmi:id="Semantics-Loci-LociL1-Locus-conforms"
              name="conforms" class="Semantics-Loci-LociL1-Locus">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-Locus-conforms-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-Locus-conforms">
                <body>// Test if a type conforms to a given classifier, that is, the type is equal
                  to or a descendant of the classifier.&#xD; &#xD; boolean doesConform =
                  false;&#xD; &#xD; if (type == classifier) {&#xD; doesConform =
                  true;&#xD; } else {&#xD; int i = 1;&#xD; while (!doesConform &amp;
                  i &lt;= type.general.size()) {&#xD; doesConform =
                  this.conforms(type.general.getValue(i-1), classifier);&#xD; i = i +
                  1;&#xD; }&#xD; }&#xD; &#xD; return doesConform;&#xD; &#xD;
                  &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-conforms-ReturnResult" name="ReturnResult"
                direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-conforms-type" name="type"
                type="Syntax-Classes-Kernel-Classifier"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-Locus-conforms-classifier" name="classifier"
                type="Syntax-Classes-Kernel-Classifier"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-SemanticStrategy"
            name="SemanticStrategy" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-SemanticStrategy-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-SemanticStrategy">
              <body>The common base class for semantic strategy classes. A semantic strategy class
                specifies the behavior to be used at a specific semantic variatio point.</body>
            </ownedComment>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-SemanticStrategy-getName" name="getName"
              isAbstract="true" class="Semantics-Loci-LociL1-SemanticStrategy">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-SemanticStrategy-getName-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-SemanticStrategy-getName">
                <body>Return the name of this strategy, as defined for the semantic variation point
                  to which the strategy applies.</body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-SemanticStrategy-getName-OwnedParameter"
                name="OwnedParameter" direction="return">
                <type xmi:type="uml:PrimitiveType"
                  href="http://www.omg.org/spec/UML/20090901/uml.xml#String"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-SemanticVisitor"
            name="SemanticVisitor" isAbstract="true">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-SemanticVisitor-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-SemanticVisitor">
              <body>The common base class for semantic visitor classes.</body>
            </ownedComment>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-SemanticVisitor-_endIsolation" name="_endIsolation"
              isStatic="true" class="Semantics-Loci-LociL1-SemanticVisitor">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-SemanticVisitor-_endIsolation-_ownedComment.0">
                <body>Debug.println("[_endIsolation] End isolation.");&#xD; </body>
              </ownedComment>
            </ownedOperation>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-SemanticVisitor-_beginIsolation" name="_beginIsolation"
              isStatic="true" class="Semantics-Loci-LociL1-SemanticVisitor">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-SemanticVisitor-_beginIsolation-_ownedComment.0">
                <body>Debug.println("[_beginIsolation] Begin isolation.");&#xD; </body>
              </ownedComment>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1"
            name="ExecutionFactoryL1">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-ExecutionFactory">
              <body> An execution factory is used to create objects that represent the execution of
                a behavior, the evaluation of a value specification or the activation of an activity
                node. This class only handles elements available at Conformance Level 1.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import fUML.Syntax.Classes.Kernel.*;&#xD;
                &#xD; import fUML.Semantics.*;&#xD; import
                fUML.Semantics.Classes.Kernel.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-_generalization.0"
              general="Semantics-Loci-LociL1-ExecutionFactory"
              specific="Semantics-Loci-LociL1-ExecutionFactoryL1"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-instantiateVisitor"
              name="instantiateVisitor" visibility="public"
              class="Semantics-Loci-LociL1-ExecutionFactoryL1">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-instantiateVisitor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL1-ExecutionFactoryL1-instantiateVisitor">
                <body>// Instantiate a visitor object for the given element (at Conformance Level
                  1)&#xD; &#xD; SemanticVisitor visitor = null;&#xD; &#xD; if
                  (element instanceof LiteralBoolean) {&#xD; visitor = new
                  LiteralBooleanEvaluation();&#xD; }&#xD; &#xD; else if (element
                  instanceof fUML.Syntax.Classes.Kernel.LiteralString) {&#xD; visitor = new
                  LiteralStringEvaluation();&#xD; }&#xD; &#xD; else if (element
                  instanceof fUML.Syntax.Classes.Kernel.LiteralNull) {&#xD; visitor = new
                  LiteralNullEvaluation();&#xD; }&#xD; &#xD; else if (element instanceof
                  fUML.Syntax.Classes.Kernel.InstanceValue) {&#xD; visitor = new
                  InstanceValueEvaluation();&#xD; }&#xD; &#xD; else if (element
                  instanceof fUML.Syntax.Classes.Kernel.LiteralUnlimitedNatural) {&#xD; visitor
                  = new LiteralUnlimitedNaturalEvaluation();&#xD; }&#xD; &#xD; else if
                  (element instanceof fUML.Syntax.Classes.Kernel.LiteralInteger) {&#xD; visitor
                  = new LiteralIntegerEvaluation();&#xD; }&#xD; &#xD; return
                  visitor;&#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-instantiateVisitor-element"
                name="element" type="Syntax-Classes-Kernel-Element"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL1-ExecutionFactoryL1-instantiateVisitor-ReturnResult"
                name="ReturnResult" type="Semantics-Loci-LociL1-SemanticVisitor" direction="return"
              />
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Loci-LociL1-A_executor_locus" name="A_executor_locus"
            visibility="private"
            memberEnd="Semantics-Loci-LociL1-Locus-executor Semantics-Loci-LociL1-Executor-locus"/>
          <packagedElement xmi:type="uml:Association" xmi:id="Semantics-Loci-LociL1-A_factory_locus"
            name="A_factory_locus" visibility="private"
            memberEnd="Semantics-Loci-LociL1-Locus-factory Semantics-Loci-LociL1-ExecutionFactory-locus"/>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Loci-LociL1-A_builtInTypes_executionFactory"
            name="A_builtInTypes_executionFactory" visibility="private"
            memberEnd="Semantics-Loci-LociL1-ExecutionFactory-builtInTypes Semantics-Loci-LociL1-A_builtInTypes_executionFactory-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-A_builtInTypes_executionFactory-_ownedEnd.0"
              visibility="private" type="Semantics-Loci-LociL1-ExecutionFactory"
              owningAssociation="Semantics-Loci-LociL1-A_builtInTypes_executionFactory"
              association="Semantics-Loci-LociL1-A_builtInTypes_executionFactory">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-A_builtInTypes_executionFactory-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-A_builtInTypes_executionFactory-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Loci-LociL1-A_strategies_executionFactory"
            name="A_strategies_executionFactory" visibility="private"
            memberEnd="Semantics-Loci-LociL1-ExecutionFactory-strategies Semantics-Loci-LociL1-A_strategies_executionFactory-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-A_strategies_executionFactory-_ownedEnd.0" name=""
              visibility="private" type="Semantics-Loci-LociL1-ExecutionFactory"
              owningAssociation="Semantics-Loci-LociL1-A_strategies_executionFactory"
              association="Semantics-Loci-LociL1-A_strategies_executionFactory"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Association"
            xmi:id="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory"
            name="A_primitiveBehaviorPrototypes_executionFactory" visibility="private"
            memberEnd="Semantics-Loci-LociL1-ExecutionFactory-primitiveBehaviorPrototypes Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory-_ownedEnd.0">
            <ownedEnd xmi:type="uml:Property"
              xmi:id="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory-_ownedEnd.0"
              visibility="private" type="Semantics-Loci-LociL1-ExecutionFactory"
              owningAssociation="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory"
              association="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                xmi:id="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory-_ownedEnd.0-_upperValue"
                value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger"
                xmi:id="Semantics-Loci-LociL1-A_primitiveBehaviorPrototypes_executionFactory-_ownedEnd.0-_lowerValue"
              />
            </ownedEnd>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Loci-LociL2" name="LociL2">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.0" importedPackage="Semantics-Loci-LociL1"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.1"
            importedPackage="Semantics-Actions-BasicActions"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.2"
            importedPackage="Semantics-Actions-IntermediateActions"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.3"
            importedPackage="Semantics-Activities-IntermediateActivities"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.4"
            importedPackage="Syntax-Actions-BasicActions" importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.5"
            importedPackage="Syntax-Actions-IntermediateActions"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL2-_packageImport.6"
            importedPackage="Syntax-Activities-IntermediateActivities"
            importingNamespace="Semantics-Loci-LociL2"/>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2"
            name="ExecutionFactoryL2">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-ExecutionFactory">
              <body> An execution factory is used to create objects that represent the execution of
                a behavior, the evaluation of a value specification or the activation of an activity
                node. This class only handles elements available at Conformance Level 2.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import
                fUML.Syntax.Activities.IntermediateActivities.*;&#xD; import
                fUML.Syntax.Actions.BasicActions.*;&#xD; import
                fUML.Syntax.Actions.IntermediateActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import
                fUML.Semantics.Activities.IntermediateActivities.*;&#xD; import
                fUML.Semantics.Actions.BasicActions.*;&#xD; import
                fUML.Semantics.Actions.IntermediateActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-_generalization.0"
              general="Semantics-Loci-LociL1-ExecutionFactoryL1"
              specific="Semantics-Loci-LociL2-ExecutionFactoryL2"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-instantiateVisitor"
              name="instantiateVisitor" visibility="public"
              class="Semantics-Loci-LociL2-ExecutionFactoryL2">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-instantiateVisitor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL2-ExecutionFactoryL2-instantiateVisitor">
                <body>// Instantiate a visitor object for the given element (at Conformance Level
                  2)&#xD; &#xD; SemanticVisitor visitor = null;&#xD; &#xD; if
                  (element instanceof Activity) {&#xD; visitor = new
                  ActivityExecution();&#xD; }&#xD; &#xD; else if (element instanceof
                  ActivityParameterNode) {&#xD; visitor = new
                  ActivityParameterNodeActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof InitialNode) {&#xD; visitor = new InitialNodeActivation();&#xD;
                  }&#xD; &#xD; else if (element instanceof ActivityFinalNode) {&#xD;
                  visitor = new ActivityFinalNodeActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof JoinNode) {&#xD; visitor = new
                  JoinNodeActivation();&#xD; }&#xD; &#xD; else if (element instanceof
                  MergeNode) {&#xD; visitor = new MergeNodeActivation();&#xD; }&#xD;
                  &#xD; else if (element instanceof ForkNode) {&#xD; visitor = new
                  ForkNodeActivation();&#xD; }&#xD; &#xD; else if (element instanceof
                  DecisionNode) {&#xD; visitor = new DecisionNodeActivation();&#xD;
                  }&#xD; &#xD; else if (element instanceof InputPin) {&#xD; visitor =
                  new InputPinActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof OutputPin) {&#xD; visitor = new OutputPinActivation();&#xD;
                  }&#xD; &#xD; else if (element instanceof CallBehaviorAction) {&#xD;
                  visitor = new CallBehaviorActionActivation();&#xD; }&#xD; &#xD; else
                  if (element instanceof CallOperationAction) {&#xD; visitor = new
                  CallOperationActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof SendSignalAction) {&#xD; visitor = new
                  SendSignalActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ReadSelfAction) {&#xD; visitor = new
                  ReadSelfActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof TestIdentityAction) {&#xD; visitor = new
                  TestIdentityActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ValueSpecificationAction) {&#xD; visitor = new
                  ValueSpecificationActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof CreateObjectAction) {&#xD; visitor = new
                  CreateObjectActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof DestroyObjectAction) {&#xD; visitor = new
                  DestroyObjectActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ReadStructuralFeatureAction) {&#xD; visitor = new
                  ReadStructuralFeatureActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof ClearStructuralFeatureAction) {&#xD; visitor = new
                  ClearStructuralFeatureActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof AddStructuralFeatureValueAction) {&#xD; visitor = new
                  AddStructuralFeatureValueActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof RemoveStructuralFeatureValueAction) {&#xD; visitor = new
                  RemoveStructuralFeatureValueActionActivation();&#xD; }&#xD; &#xD; else
                  if (element instanceof ReadLinkAction) {&#xD; visitor = new
                  ReadLinkActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ClearAssociationAction) {&#xD; visitor = new
                  ClearAssociationActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof CreateLinkAction) {&#xD; visitor = new
                  CreateLinkActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof DestroyLinkAction) {&#xD; visitor = new
                  DestroyLinkActionActivation();&#xD; }&#xD; &#xD; else {&#xD;
                  visitor = super.instantiateVisitor(element);&#xD; }&#xD; &#xD; return
                  visitor;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-instantiateVisitor-element"
                name="element" type="Syntax-Classes-Kernel-Element"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL2-ExecutionFactoryL2-instantiateVisitor-ReturnResult"
                name="ReturnResult" type="Semantics-Loci-LociL1-SemanticVisitor" direction="return"
              />
            </ownedOperation>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="Semantics-Loci-LociL3" name="LociL3">
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.0" importedPackage="Semantics-Loci-LociL2"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.1"
            importedPackage="Semantics-Actions-CompleteActions"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.2"
            importedPackage="Semantics-Activities-CompleteStructuredActivities"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.3"
            importedPackage="Semantics-Activities-ExtraStructuredActivities"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.4"
            importedPackage="Syntax-Actions-CompleteActions"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.5"
            importedPackage="Syntax-Activities-CompleteStructuredActivities"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packageImport xmi:type="uml:PackageImport"
            xmi:id="Semantics-Loci-LociL3-_packageImport.6"
            importedPackage="Syntax-Activities-ExtraStructuredActivities"
            importingNamespace="Semantics-Loci-LociL3"/>
          <packagedElement xmi:type="uml:Class" xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3"
            name="ExecutionFactoryL3">
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-_ownedComment.0"
              annotatedElement="Semantics-Loci-LociL1-ExecutionFactory">
              <body> An execution factory is used to create objects that represent the execution of
                a behavior, the evaluation of a value specification or the activation of an activity
                node. This class only handles elements available at Conformance Level 3.</body>
            </ownedComment>
            <ownedComment xmi:type="uml:Comment"
              xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-_ownedComment.1">
              <body>import fUML.Syntax.*;&#xD; import
                fUML.Syntax.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Syntax.Activities.ExtraStructuredActivities.*;&#xD; import
                fUML.Syntax.Actions.CompleteActions.*;&#xD; &#xD; import
                fUML.Semantics.*;&#xD; import
                fUML.Semantics.Activities.CompleteStructuredActivities.*;&#xD; import
                fUML.Semantics.Activities.ExtraStructuredActivities.*;&#xD; import
                fUML.Semantics.Actions.CompleteActions.*;&#xD; import
                fUML.Semantics.Loci.LociL1.*;&#xD; import fUML.Semantics.Loci.LociL2.*;&#xD;
              </body>
            </ownedComment>
            <generalization xmi:type="uml:Generalization"
              xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-_generalization.0"
              general="Semantics-Loci-LociL2-ExecutionFactoryL2"
              specific="Semantics-Loci-LociL3-ExecutionFactoryL3"/>
            <ownedOperation xmi:type="uml:Operation"
              xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-instantiateVisitor"
              name="instantiateVisitor" visibility="public"
              class="Semantics-Loci-LociL3-ExecutionFactoryL3">
              <ownedComment xmi:type="uml:Comment"
                xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-instantiateVisitor-_ownedComment.0"
                annotatedElement="Semantics-Loci-LociL3-ExecutionFactoryL3-instantiateVisitor">
                <body>// Instantiate a visitor object for the given element (at Conformance Level
                  3)&#xD; &#xD; SemanticVisitor visitor = null;&#xD; &#xD; if
                  (element instanceof ConditionalNode) {&#xD; visitor = new
                  ConditionalNodeActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof LoopNode) {&#xD; visitor = new LoopNodeActivation();&#xD;
                  }&#xD; &#xD; else if (element instanceof ExpansionRegion) {&#xD;
                  visitor = new ExpansionRegionActivation();&#xD; }&#xD; &#xD; // Note:
                  Since ConditionalNode, LoopNode and ExpansionRegion are subclasses of &#xD; //
                  StructuredActivityNode, element must be tested against the three subclasses
                  before&#xD; // the superclass&#xD; else if (element instanceof
                  StructuredActivityNode) {&#xD; visitor = new
                  StructuredActivityNodeActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ExpansionNode) {&#xD; visitor = new
                  ExpansionNodeActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ReadExtentAction) {&#xD; visitor = new
                  ReadExtentActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ReadIsClassifiedObjectAction) {&#xD; visitor = new
                  ReadIsClassifiedObjectActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof ReclassifyObjectAction) {&#xD; visitor = new
                  ReclassifyObjectActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof StartObjectBehaviorAction) {&#xD; visitor = new
                  StartObjectBehaviorActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof StartClassifierBehaviorAction) {&#xD; visitor = new
                  StartClassifierBehaviorActionActivation();&#xD; }&#xD; &#xD; else if
                  (element instanceof AcceptEventAction) {&#xD; visitor = new
                  AcceptEventActionActivation();&#xD; }&#xD; &#xD; else if (element
                  instanceof ReduceAction) {&#xD; visitor = new
                  ReduceActionActivation();&#xD; }&#xD; &#xD; else {&#xD; visitor =
                  super.instantiateVisitor(element);&#xD; }&#xD; &#xD; return
                  visitor;&#xD; &#xD; </body>
              </ownedComment>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-instantiateVisitor-element"
                name="element" type="Syntax-Classes-Kernel-Element"/>
              <ownedParameter xmi:type="uml:Parameter"
                xmi:id="Semantics-Loci-LociL3-ExecutionFactoryL3-instantiateVisitor-ReturnResult"
                name="ReturnResult" type="Semantics-Loci-LociL1-SemanticVisitor" direction="return"
              />
            </ownedOperation>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-L1" name="L1">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L1-_packageMerge.0"
          mergedPackage="Semantics-Classes-Kernel" receivingPackage="Semantics-L1"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L1-_packageMerge.1"
          mergedPackage="Semantics-CommonBehaviors-BasicBehaviors" receivingPackage="Semantics-L1"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L1-_packageMerge.2"
          mergedPackage="Semantics-CommonBehaviors-Communications" receivingPackage="Semantics-L1"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L1-_packageMerge.3"
          mergedPackage="Semantics-Loci-LociL1" receivingPackage="Semantics-L1"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-L2" name="L2">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L2-_packageMerge.0"
          mergedPackage="Semantics-L1" receivingPackage="Semantics-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L2-_packageMerge.1"
          mergedPackage="Semantics-Activities-IntermediateActivities"
          receivingPackage="Semantics-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L2-_packageMerge.2"
          mergedPackage="Semantics-Actions-BasicActions" receivingPackage="Semantics-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L2-_packageMerge.3"
          mergedPackage="Semantics-Actions-IntermediateActions" receivingPackage="Semantics-L2"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L2-_packageMerge.4"
          mergedPackage="Semantics-Loci-LociL2" receivingPackage="Semantics-L2"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="Semantics-L3" name="L3">
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L3-_packageMerge.0"
          mergedPackage="Semantics-L2" receivingPackage="Semantics-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L3-_packageMerge.1"
          mergedPackage="Semantics-Activities-CompleteStructuredActivities"
          receivingPackage="Semantics-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L3-_packageMerge.2"
          mergedPackage="Semantics-Actions-CompleteActions" receivingPackage="Semantics-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L3-_packageMerge.3"
          mergedPackage="Semantics-Activities-ExtraStructuredActivities"
          receivingPackage="Semantics-L3"/>
        <packageMerge xmi:type="uml:PackageMerge" xmi:id="Semantics-L3-_packageMerge.4"
          mergedPackage="Semantics-Loci-LociL3" receivingPackage="Semantics-L3"/>
      </packagedElement>
    </packagedElement>
  </uml:Package>
</xmi:XMI>
