<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:uml="http://www.omg.org/spec/UML/20161101"
         xmlns:xmi="http://www.omg.org/spec/XMI/20131001">
   <uml:Model xmi:type="uml:Model" xmi:id="PSCS_Semantics"
              xmi:uuid="826a095a-d6f5-4320-8458-91f06fdc167e"
              name="PSCS_Semantics"
              URI="http://www.omg.org/spec/PSCS/20180801">
      <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics"
                       xmi:uuid="5a1565e6-bc76-40ea-9662-3575f9d2d0ad"
                       name="Semantics">
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-Actions"
                          xmi:uuid="9bd68cb5-8a48-4c30-a020-d8a59bf7d408"
                          name="Actions">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Actions-packageImport-1"
                           xmi:uuid="9713c7a2-db79-4631-8040-74b7ec386494"
                           importedPackage="PSCS_Semantics-Semantics-CommonBehavior"/>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Actions-packageImport-2"
                           xmi:uuid="f3a5371a-f8f3-435a-9e48-4a41a6ef228b">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Actions-packageImport-3"
                           xmi:uuid="6150344d-b739-4aec-92f5-9ffae352fe9c">
               <importedPackage href="http://www.omg.org/spec/PSCS/20180801/PSCS_Syntax.xmi#PSCS_Syntax-Syntax-Actions"/>
            </packageImport>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation"
                             xmi:uuid="ea52077d-4674-4505-bba9-928dbcb24623"
                             name="CS_ReadExtentActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-ownedComment"
                             xmi:uuid="17f79a2b-61e1-47d5-9102-d6ba046ace89"
                             body="Extends default fUML semantics in the sense that produced tokens contain CS_References instead of References, in the case where the object is a CS_Object. [Note: This extension can be avoided if fUML introduces a factory for Reference]"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-generalization"
                               xmi:uuid="43aecf05-ec0f-4234-b233-a5f7cb9ea835">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-ReadExtentActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-ownedBehavior"
                              xmi:uuid="fd23484d-bff6-4a6b-954e-9bd7add8f651"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-ownedOperation">
                  <body>		// Get the extent, at the current execution locus, of the classifier
		// (which must be a class) identified in the action.
		// Place references to the resulting set of objects on the result pin.
		// Extends default fUML semantics in the sense that produced tokens contain
		// CS_References instead of References, in the case where the object is a
		// CS_Object

		ReadExtentAction action = (ReadExtentAction) (this.node);
		ExtensionalValueList objects = this.getExecutionLocus().getExtent(
				action.classifier);

		ValueList references = new ValueList();
		for (int i = 0; i &lt; objects.size(); i++) {
			Value object = objects.getValue(i);
			Reference reference = null ;
			if (object instanceof CS_Object) {
				reference = new CS_Reference() ;
				((CS_Reference)reference).compositeReferent = (CS_Object)object ;
			}
			else {
				reference = new Reference() ;
			}
			reference.referent = (Object_) object;
			references.addValue(reference);
		}

		this.putTokens(action.result, references);</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-ownedOperation"
                               xmi:uuid="0e7c5f22-02aa-4a1a-ab0e-6ab049490245"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ReadExtentActionActivation-ownedBehavior"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation"
                             xmi:uuid="d9708d74-7c1b-4473-bc0e-b0135e0f98f5"
                             name="CS_AddStructuralFeatureValueActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedComment"
                             xmi:uuid="a28c46f1-b31f-4a17-ab82-3b773e151a58"
                             body="The behavior of fUML AddStructuralFeatureActionActivation::doAction() is overriden. In the case where the targeted structural feature is a port and the value to be added is a Reference, an interaction point is created on the basis of the given Reference. It then behaves like in fUML, except that the execution continues using the created interaction point instead of the given Reference."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-generalization"
                               xmi:uuid="aa6d840e-ad31-46e5-8568-a876f5184a1f">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-AddStructuralFeatureValueActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedBehavior-1"
                              xmi:uuid="35d0ae87-9c45-4bd6-9707-609ad0bb2905"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedOperation-1">
                  <body>		// If the feature is a port and the input value to be added is a
		// Reference,
		// Replaces this Reference by an InteractionPoint, and then behaves
		// as usual.
		// If the feature is not a port, behaves as usual

		AddStructuralFeatureValueAction action = (AddStructuralFeatureValueAction) (this.node);
		StructuralFeature feature = action.structuralFeature;

		if (!(feature instanceof Port)) {
			// Behaves as usual
			this.doActionDefault() ;
		} 
		else {
			ValueList inputValues = this.takeTokens(action.value);
			// NOTE: Multiplicity of the value input pin is required to be 1..1.
			Value inputValue = inputValues.getValue(0);
			if (inputValue instanceof Reference) {
				// First constructs an InteractionPoint from the inputValue
				Reference reference = (Reference) inputValue;
				CS_InteractionPoint interactionPoint = new CS_InteractionPoint();
				interactionPoint.referent = reference.referent;
				interactionPoint.definingPort = (Port) feature;
				// The value on action.object is necessarily instanceof
				// ReferenceToCompositeStructure (otherwise, the feature cannot
				// be a port)
				CS_Reference owner = (CS_Reference) this.takeTokens(
						action.object).getValue(0);
				interactionPoint.owner = owner;
				// Then replaces the Reference by an InteractionPoint
				// in the inputValues
				inputValues.remove(0);
				inputValues.addValue(0, interactionPoint);
				// Finally concludes with usual fUML behavior of
				// AddStructuralFeatureValueAction (i.e., the usual behavior
				// when
				// the value on action.object pin is a StructuredValue)
				Integer insertAt = 0;
				if (action.insertAt != null) {
					insertAt = ((UnlimitedNaturalValue) this.takeTokens(
							action.insertAt).getValue(0)).value.naturalValue;
				}
				if (action.isReplaceAll) {
					owner.setFeatureValue(feature, inputValues, 0);
				} 
				else {
					FeatureValue featureValue = owner.getFeatureValue(feature);

					if (featureValue.values.size() &gt; 0 &amp; insertAt == 0) {
						// If there is no insertAt pin, then the structural
						// feature must
						// be unordered, and the insertion position is
						// immaterial.
						insertAt = ((ChoiceStrategy) this.getExecutionLocus().factory
								.getStrategy("choice"))
								.choose(featureValue.values.size());
					}
					if (feature.multiplicityElement.isUnique) {
						// Remove any existing value that duplicates the input
						// value
						Integer j = position(interactionPoint, featureValue.values, 1);
						if (j &gt; 0) {
							featureValue.values.remove(j - 1);
							if (insertAt &gt; 0 &amp; j &lt; insertAt) {
								insertAt = insertAt - 1;
							}
						}
					}

					if (insertAt &lt;= 0) {
						// Note: insertAt = -1 indicates an unlimited value of
						// "*"
						featureValue.values.addValue(interactionPoint);
					} else {
						featureValue.values.addValue(insertAt - 1, interactionPoint);
					}
				}
				if (action.result != null) {
					this.putToken(action.result, owner);
				}
			} 
			else {
				// behaves as usual
				this.doActionDefault() ;
			}
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedBehavior-2"
                              xmi:uuid="a182a25f-9c4f-451f-9b2c-580a922e0f5c"
                              name="doActionDefault"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedOperation-2">
                  <body>		// Get the values of the object and value input pins.
		// If the given feature is an association end, then create a link
		// between the object and value inputs.
		// Otherwise, if the object input is a structural value, then add a
		// value to the values for the feature.
		// If isReplaceAll is true, first remove all current matching links or
		// feature values.
		// If isReplaceAll is false and there is an insertAt pin, insert the
		// value at the appropriate position.
		// This operation captures same semantics as fUML 
		// AddStructuralFeatureValueActionActivation.doAction(), except that
		// when the feature is an association end, a CS_Link will be created instead
		// of a Link

		AddStructuralFeatureValueAction action = (AddStructuralFeatureValueAction) (this.node);
		StructuralFeature feature = action.structuralFeature;
		Association association = this.getAssociation(feature);

		Value value = this.takeTokens(action.object).getValue(0);
		ValueList inputValues = this.takeTokens(action.value);

		// NOTE: Multiplicity of the value input pin is required to be 1..1.
		Value inputValue = inputValues.getValue(0);

		int insertAt = 0;
		if (action.insertAt != null) {
			insertAt = ((UnlimitedNaturalValue) this
					.takeTokens(action.insertAt).getValue(0)).value.naturalValue;
		}

		if (association != null) {
			LinkList links = this.getMatchingLinks(association, feature, value);

			Property oppositeEnd = this.getOppositeEnd(association, feature);
			int position = 0;
			if (oppositeEnd.multiplicityElement.isOrdered) {
				position = -1;
			}

			if (action.isReplaceAll) {
				for (int i = 0; i &lt; links.size(); i++) {
					Link link = links.getValue(i);
					link.destroy();
				}
			} else if (feature.multiplicityElement.isUnique) {
				for (int i = 0; i &lt; links.size(); i++) {
					Link link = links.getValue(i);
					FeatureValue featureValue = link.getFeatureValue(feature);
					if (featureValue.values.getValue(0).equals(inputValue)) {
						position = link.getFeatureValue(oppositeEnd).position;
						if (insertAt &gt; 0 &amp; featureValue.position &lt; insertAt) {
							insertAt = insertAt - 1;
						}
						link.destroy();
					}
				}
			}

			CS_Link newLink = new CS_Link();
			newLink.type = association;

			// This necessary when setting a feature value with an insertAt
			// position
			newLink.locus = this.getExecutionLocus();

			newLink.setFeatureValue(feature, inputValues, insertAt);

			ValueList oppositeValues = new ValueList();
			oppositeValues.addValue(value);
			newLink.setFeatureValue(oppositeEnd, oppositeValues, position);

			newLink.locus.add(newLink);

		} else if (value instanceof StructuredValue) {
			StructuredValue structuredValue = (StructuredValue) value;

			if (action.isReplaceAll) {
				structuredValue.setFeatureValue(feature, inputValues, 0);
			} else {
				FeatureValue featureValue = structuredValue
						.getFeatureValue(feature);

				if (featureValue.values.size() &gt; 0 &amp; insertAt == 0) {
					// *** If there is no insertAt pin, then the structural
					// feature must be unordered, and the insertion position is
					// immaterial. ***
					insertAt = ((ChoiceStrategy) this.getExecutionLocus().factory
							.getStrategy("choice")).choose(featureValue.values
									.size());
				}

				if (feature.multiplicityElement.isUnique) {
					// Remove any existing value that duplicates the input value
					int j = position(inputValue, featureValue.values, 1);
					if (j &gt; 0) {
						featureValue.values.remove(j - 1);
						if (insertAt &gt; 0 &amp; j &lt; insertAt) {
							insertAt = insertAt - 1;
						}
					}
				}

				if (insertAt &lt;= 0) { // Note: insertAt = -1 indicates an
					// unlimited value of "*"
					featureValue.values.addValue(inputValue);
				} else {
					featureValue.values.addValue(insertAt - 1, inputValue);
				}
			}
		}

		if (action.result != null) {
			this.putToken(action.result, value);
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedOperation-1"
                               xmi:uuid="5444935f-6906-410e-b4bc-f5241ee53467"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedOperation-1-ownedComment"
                                xmi:uuid="b38a941b-5039-4fd1-be5c-33a9ecd32be5"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public doAction () { // If the feature is a port and the input value to be added is a Reference, // Replaces this Reference by an InteractionPoint, and then behaves // as usual. // If the feature is not a port, behaves as usual AddStructuralFeatureValueAction action = (AddStructuralFeatureValueAction)(this.node); StructuralFeature feature = action.structuralFeature; if (! (feature instanceof Port)) { // Behaves as usual super.doAction() ; } else { ValueList inputValues = this.takeTokens(action.value); // NOTE: Multiplicity of the value input pin is required to be 1..1. Value inputValue = inputValues.getValue(0); if (inputValue instanceof Reference) { // First constructs an InteractionPoint from the inputValue Reference reference = (Reference)inputValue ; InteractionPoint interactionPoint = new InteractionPoint() ; interactionPoint.referent = reference.referent ; interactionPoint.definingPort = (Port)feature ; // The value on action.object is necessarily instanceof // ReferenceToCompositeStructure (otherwise, the feature cannot // be a port) ReferenceToCompositeStructure owner = (ReferenceToCompositeStructure)this .takeTokens(action.object).getValue(0); interactionPoint.owner = owner ; // Then replaces the Reference by an InteractionPoint // in the inputValues inputValues.remove(0) ; inputValues.addValue(0,interactionPoint) ; // Finally concludes with usual fUML behavior of // AddStructuralFeatureValueAction (i.e., the usual behavior when // the value on action.object pin is a StructuredValue) Integer insertAt = 0; if (action.insertAt != null) { insertAt = ((UnlimitedNaturalValue)this .takeTokens(action.insertAt).getValue(0)) .value.naturalValue; } if (action.isReplaceAll) { owner.setFeatureValue(feature, inputValues, 0); } else { FeatureValue featureValue = owner.getFeatureValue(feature); if (featureValue.values.size() &gt; 0 &amp; insertAt == 0 ) { // If there is no insertAt pin, then the structural feature must // be unordered, and the insertion position is immaterial. insertAt = ((ChoiceStrategy)this.getExecutionLocus() .factory.getStrategy(&#34;choice&#34;)) .choose(featureValue.values.size()); } if (feature.multiplicityElement.'isUnique') { // Remove any existing value that duplicates the input value Integer j = position(inputValue, featureValue.values, 1); if (j &gt; 0) { featureValue.values.remove(j-1); if (insertAt &gt; 0 &amp; j &lt; insertAt) { insertAt = insertAt - 1; } } } if (insertAt &lt;= 0) { // Note: insertAt = -1 indicates an unlimited value of &#34;*&#34; featureValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } if (j &gt; 0) { featureValue.values.remove(j-1); if (insertAt &gt; 0 &amp; j &lt; insertAt) { insertAt = insertAt - 1; } } } if (insertAt &lt;= 0) { // Note: insertAt = -1 indicates an unlimited value of &#34;*&#34; featureValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } reValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } lse { // behaves as usual super.doAction(); } } } ;&#xA;&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;}&#x9;&#xA;&#xA;} "/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedOperation-2"
                               xmi:uuid="6639d6d6-d7df-4d13-beb1-e53b99793cd2"
                               name="doActionDefault"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_AddStructuralFeatureValueActionActivation-ownedBehavior-2"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation"
                             xmi:uuid="8e41be56-2617-406b-a225-e6ea76860156"
                             name="CS_ReadSelfActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-ownedComment"
                             xmi:uuid="0cdee0fe-e6df-44ba-96a8-37abfc23e6a5"
                             body="Extends fUML semantics in the sense that the reference placed on the result pin is a CS_Reference, not a Reference. [Note: this extension can be avoided if fUML introduces a factory for instantiating Reference]"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-generalization"
                               xmi:uuid="52c64c4f-60de-410e-a180-05f054c333c1">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-ReadSelfActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-ownedBehavior"
                              xmi:uuid="c60e5eb9-7309-4c7b-9a99-ee7304eb9d88"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-ownedOperation">
                  <body>		// Get the context object of the activity execution containing this
		// action activation and place a reference to it on the result output
		// pin.
		// Extends fUML semantics in the sense that the reference placed on
		// the result pin is a CS_Reference, not a Reference

		// Debug.println("[ReadSelfActionActivation] Start...");

		CS_Reference context = new CS_Reference();
		context.referent = this.getExecutionContext();
		if (context.referent instanceof CS_Object) {// i.e. alternatively, it can be an execution
			context.compositeReferent = (CS_Object)context.referent ;
		}

		// Debug.println("[ReadSelfActionActivation] context object = " +
		// context.referent);

		OutputPin resultPin = ((ReadSelfAction) (this.node)).result;
		this.putToken(resultPin, context);
</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-ownedOperation"
                               xmi:uuid="4804f701-0b70-46fe-a99f-a951b4ec2f20"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ReadSelfActionActivation-ownedBehavior"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation"
                             xmi:uuid="cb567cd9-80ce-405d-8e1b-ff45e33fa90b"
                             name="CS_RemoveStructuralFeatureValueActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedComment"
                             xmi:uuid="d9ee9e40-1bc0-46df-ac8f-036848bc9bbf"
                             body="In PSCS context, when a value is removed from a structural feature, all links in which this value is involved must be destroyed. The link destruction must also be propagated to links in which values referenced in feature values of the removed value are involved. The rule applies recursively."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-generalization"
                               xmi:uuid="e7c5c944-07ea-40d7-a8a7-2654e193e219">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-RemoveStructuralFeatureValueActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-1"
                              xmi:uuid="21c0ad8a-bc69-40b3-9447-79fdf8b8630b"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-1">
                  <body>// Get the values of the object and value input pins. 
// If the given feature is an association end, then destroy any
// matching links. Otherwise, if the object input is a structural
// value, remove values from the given feature and destroy all links
// in which the removed values are involved.
// If isRemoveDuplicates is true, then destroy all current matching
// links or remove all values equal to the input value.
// 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).
// If isRemoveDuplicates is false, and there is a removeAt input pin
// remove the feature value at that position.

RemoveStructuralFeatureValueAction action = (RemoveStructuralFeatureValueAction) (this.node);
StructuralFeature feature = action.getStructuralFeature();
Association association = this.getAssociation(feature);
Value value = this.takeTokens(action.getObject()).get(0);
Value inputValue = null;
if (action.getValue() != null) {
	// NOTE: Multiplicity of the value input pin is required to be 1..1.
	inputValue = this.takeTokens(action.getValue()).get(0);
}
int removeAt = 0;
if (action.getRemoveAt() != null) {
	removeAt = ((UnlimitedNaturalValue) this.takeTokens(action.getRemoveAt()).get(0)).value;
}
if (association != null) {
	List&lt;Link&gt; links = this.getMatchingLinksForEndValue(association, feature, value, inputValue);
	if (action.isRemoveDuplicates()) {
		for (int i = 0; i &lt; links.size(); i++) {
			Link link = links.get(i);
			link.destroy();
		}
	} else if (action.getRemoveAt() == null) {
		// *** If there is more than one matching link,
		// non-deterministically choose one. ***
		if (links.size() &gt; 0) {
			int i = ((ChoiceStrategy) this.getExecutionLocus().factory.getStrategy("choice")).choose(links.size());
			links.get(i - 1).destroy();
		}
	} else {
		boolean notFound = true;
		int i = 1;
		while (notFound &amp; i &lt;= links.size()) {
			Link link = links.get(i - 1);
			if (link.getFeatureValue(feature).position == removeAt) {
				notFound = false;
				link.destroy();
			}
		}
	}
} else if (value instanceof StructuredValue) {
	// If the value is a data value, then it must be copied before
	// any change is made.
	if (!(value instanceof Reference)) {
		value = value.copy();
	}
	FeatureValue featureValue = ((StructuredValue) value).getFeatureValue(action.getStructuralFeature());
	List&lt;Value&gt; removedValues = new ArrayList&lt;Value&gt;();
	if (action.isRemoveDuplicates()) {
		int j = this.position(inputValue, featureValue.values, 1);
		while (j &gt; 0) {
			removedValues.add(featureValue.values.get(j - 1));
			featureValue.values.remove(j - 1);
			j = this.position(inputValue, featureValue.values, j);
		}
	} else if (action.getRemoveAt() == null) {
		List&lt;Integer&gt; positions = new ArrayList&lt;Integer&gt;();
		int j = this.position(inputValue, featureValue.values, 1);
		while (j &gt; 0) {
			positions.add(j);
			j = this.position(inputValue, featureValue.values, j);
		}
		if (positions.size() &gt; 0) {
			// *** Nondeterministically choose which value to remove.
			// ***
			int k = ((ChoiceStrategy) this.getExecutionLocus().factory.getStrategy("choice")).choose(positions.size());
			removedValues.add(featureValue.values.get(positions.get(k - 1) - 1));
			featureValue.values.remove(positions.get(k - 1) - 1);
		}
	} else {
		if (featureValue.values.size() &gt;= removeAt) {
			removedValues.add(featureValue.values.get(removeAt - 1));
			featureValue.values.remove(removeAt - 1);
		}
	}
	// When values are removed from the list of values associated to the feature 
	// (in the context of the target), these latter may be involved in links representing
	// instance of connectors. If this is the case, links in which the removed values are
	// involved are destroyed.
	for(int i = 0; i &lt; removedValues.size(); i++){
		List&lt;CS_Link&gt; linkToDestroy = this.getLinksToDestroy((StructuredValue)value, feature, removedValues.get(i));
		for(int j = 0; j &lt; linkToDestroy.size(); j++){
			linkToDestroy.get(j).destroy();
		}
	}
}
if (action.getResult() != null) {
	this.putToken(action.getResult(), value);
}

Editorial Note: In order to reduce the code duplication it is required to split the semantics of RemoveStructuralFeatureActionActivation into different operations. 
[2] public getLinksToDestroy (value : StructuredValue,  feature : StructuralFeature, removedValue : Value) : CS_Link[*] 

// Get all links that are required to be destroyed due to the removal of the removedValue
List&lt;CS_Link&gt; linksToDestroy = new ArrayList&lt;CS_Link&gt;();
if (value instanceof CS_Reference) {
	CS_Reference context = (CS_Reference) value;
	// Retrieves the feature values for the structural feature associated with this action,
	// in the context of this reference
	if (feature instanceof Port) {
		// The removed value is an interaction point.
		// All links in which this interaction is involved must be destroyed.
		CS_InteractionPoint interactionPoint = (CS_InteractionPoint) removedValue;
		List&lt;CS_Link&gt; connectorInstances = context.compositeReferent.getLinks(interactionPoint);
		for (int j = 0; j &lt; connectorInstances.size(); j++) {
			CS_Link link = connectorInstances.get(j);
			linksToDestroy.add(link);
		}
	} else { 
		// Feature is not a Port. Search for all potential link
		// ends existing in the context of this object.
		List&lt;Value&gt; allValuesForFeature = new ArrayList&lt;Value&gt;();
		for (int i = 0; i &lt; context.referent.featureValues.size(); i++) {
			StructuralFeature currentFeature = context.referent.featureValues.get(i).feature;
			if(feature != currentFeature){
				List&lt;Value&gt; values = this.getPotentialLinkEnds(context, currentFeature);
				for (int j = 0; j &lt; values.size(); j++) {
					allValuesForFeature.add(values.get(j));
				}
			}
		}
		// Retrieves all links available at the locus
		List&lt;ExtensionalValue&gt; extensionalValues = this.getExecutionLocus().extensionalValues;
		List&lt;CS_Link&gt; allLinks = new ArrayList&lt;CS_Link&gt;();
		for (int i = 0; i &lt; extensionalValues.size(); i++) {
			ExtensionalValue extensionalValue = extensionalValues.get(i);
			if (extensionalValue instanceof CS_Link) {
				allLinks.add((CS_Link) extensionalValue);
			}
		}
		// In the set of links involving potential link ends. Search for all
		// links that involve the removed value in other end. Any link in that
		// fulfill this condition is registered in the set of link to be destroyed.
		for (int i = 0; i &lt; allLinks.size(); i++) {
			CS_Link link = allLinks.get(i);
			boolean linkHasToBeDestroyed = false;
			for (int j = 0; j &lt; allValuesForFeature.size() &amp;&amp; !linkHasToBeDestroyed; j++) {
				Value v = allValuesForFeature.get(j);
				StructuralFeature featureForV = link.getFeature(v);
				if (featureForV != null) {
					for (int k = 0; k &lt; link.featureValues.size() &amp;&amp; !linkHasToBeDestroyed; k++) {
						FeatureValue otherFeatureValue = link.featureValues.get(k);
						if (otherFeatureValue.feature != featureForV) {
							for (int l = 0; l &lt; otherFeatureValue.values.size() &amp;&amp; !linkHasToBeDestroyed; l++) {
							if(otherFeatureValue.values.get(l) == removedValue){
									linkHasToBeDestroyed = true;
								}
							}
						}
					}
				}
			}
			if (linkHasToBeDestroyed) {
				linksToDestroy.add(link);
			}
		}
	}
}
</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy"
                              xmi:uuid="247bfe06-4f88-4cf2-83ad-f456c8dda8fa"
                              name="getLinksToDestroy"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_">
                  <body>// Get all links that are required to be destroyed due to the removal of the removedValue

List&lt;CS_Link&gt; linksToDestroy = new ArrayList&lt;CS_Link&gt;();
if (value instanceof CS_Reference) {
	CS_Reference context = (CS_Reference) value;
	// Retrieves the feature values for the structural feature associated with this action,
	// in the context of this reference
	if (feature instanceof Port) {
		// The removed value is an interaction point.
		// All links in which this interaction is involved must be destroyed.
		CS_InteractionPoint interactionPoint = (CS_InteractionPoint) removedValue;
		List&lt;CS_Link&gt; connectorInstances = context.compositeReferent.getLinks(interactionPoint);
		for (int j = 0; j &lt; connectorInstances.size(); j++) {
			CS_Link link = connectorInstances.get(j);
			linksToDestroy.add(link);
		}
	} else { 
		// Feature is not a Port. Search for all potential link
		// ends existing in the context of this object.
		List&lt;Value&gt; allValuesForFeature = new ArrayList&lt;Value&gt;();
		for (int i = 0; i &lt; context.referent.featureValues.size(); i++) {
			StructuralFeature currentFeature = context.referent.featureValues.get(i).feature;
			if(feature != currentFeature){
				List&lt;Value&gt; values = this.getPotentialLinkEnds(context, currentFeature);
				for (int j = 0; j &lt; values.size(); j++) {
					allValuesForFeature.add(values.get(j));
				}
			}
		}
		// Retrieves all links available at the locus
		List&lt;ExtensionalValue&gt; extensionalValues = this.getExecutionLocus().extensionalValues;
		List&lt;CS_Link&gt; allLinks = new ArrayList&lt;CS_Link&gt;();
		for (int i = 0; i &lt; extensionalValues.size(); i++) {
			ExtensionalValue extensionalValue = extensionalValues.get(i);
			if (extensionalValue instanceof CS_Link) {
				allLinks.add((CS_Link) extensionalValue);
			}
		}
		// In the set of links involving potential link ends. Search for all
		// links that involve the removed value in other end. Any link in that
		// fulfill this condition is registered in the set of link to be destroyed.
		for (int i = 0; i &lt; allLinks.size(); i++) {
			CS_Link link = allLinks.get(i);
			boolean linkHasToBeDestroyed = false;
			for (int j = 0; j &lt; allValuesForFeature.size() &amp;&amp; !linkHasToBeDestroyed; j++) {
				Value v = allValuesForFeature.get(j);
				StructuralFeature featureForV = link.getFeature(v);
				if (featureForV != null) {
					for (int k = 0; k &lt; link.featureValues.size() &amp;&amp; !linkHasToBeDestroyed; k++) {
						FeatureValue otherFeatureValue = link.featureValues.get(k);
						if (otherFeatureValue.feature != featureForV) {
							for (int l = 0; l &lt; otherFeatureValue.values.size() &amp;&amp; !linkHasToBeDestroyed; l++) {
							if(otherFeatureValue.values.get(l) == removedValue){
									linkHasToBeDestroyed = true;
								}
							}
						}
					}
				}
			}
			if (linkHasToBeDestroyed) {
				linksToDestroy.add(link);
			}
		}
	}
}
return linksToDestroy
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-feature"
                                  xmi:uuid="94108528-975f-45ad-97a6-6ef964f5e886"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-removedValue"
                                  xmi:uuid="2ea75764-9e65-41a6-8613-cf42f2867dc0"
                                  name="removedValue"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-returnValue"
                                  xmi:uuid="cfa6d680-1be2-4c61-bd65-811241ad54c6"
                                  name="returnValue"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-returnValue-lowerValue"
                                 xmi:uuid="e02ad6ea-3bab-4e65-ad53-eaf774a554ce"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-returnValue-upperValue"
                                 xmi:uuid="a4541e37-bc47-4c55-9d19-e5c8eb40d2e1"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy-value"
                                  xmi:uuid="5481c4a3-f489-4498-99f7-aff2a58c1812"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-StructuredValue"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3"
                              xmi:uuid="7a2ce7a4-d73f-469c-96d9-3b9b7e61901b"
                              name="getPotentialLinkEnds"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3">
                  <body>// Retrieves all feature values for the context object for the given feature,
// as well as all interaction point for these values

List&lt;Value&gt; potentialLinkEnds = new ArrayList&lt;Value&gt;();
FeatureValue featureValue = context.getFeatureValue(feature);
for (int i = 0; i &lt; featureValue.values.size(); i++) {
	Value v = featureValue.values.get(i);
potentialLinkEnds.add(v);
	if (v instanceof CS_Reference) {
		// add all interaction points associated with v
		for (int j = 0; j &lt; ((CS_Reference) v).referent.featureValues.size(); j++) {
			if (((CS_Reference) v).referent.featureValues.get(j).feature instanceof Port) {
				List&lt;Value&gt; interactionPoints = (((CS_Reference) v).referent.featureValues.get(j)).values;
				for (int k = 0; k &lt; interactionPoints.size(); k++) {
					potentialLinkEnds.add(interactionPoints.get(k));
				}
			}
		}
	}
}
return potentialLinkEnds;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3-ownedParameter-1"
                                  xmi:uuid="792f9e6b-308b-4bbb-ab75-297bf0e8d25a"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3-ownedParameter-2"
                                  xmi:uuid="3a0ca31d-026e-41b5-85e1-aee9019b3c6c"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3-ownedParameter-3"
                                  xmi:uuid="32bf4d60-bee1-4f1e-9914-f054f66a453d"
                                  name="returnValue"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3-ownedParameter-3-lowerValue"
                                 xmi:uuid="7cc5952d-afa9-40e4-bb08-37fc98a98a8d"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3-ownedParameter-3-upperValue"
                                 xmi:uuid="da797461-c35e-4103-a926-2f8994f92784"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-1"
                               xmi:uuid="d0fa6c12-45be-411a-a687-c8503248d079"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-1"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_"
                               xmi:uuid="0846b7f2-5db6-48e5-9cb1-cdc1525d04f3"
                               name="getLinksToDestroy "
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-value"
                                  xmi:uuid="9b01ca01-91d9-49ea-9c85-efc3565560c9"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-StructuredValue"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-feature"
                                  xmi:uuid="9124a60a-6802-4fbf-8a8c-1d73986b6597"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-removedValue"
                                  xmi:uuid="c8fbb1c3-9730-42c6-b4fc-2fa820f9a53f"
                                  name="removedValue"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-returnValue"
                                  xmi:uuid="9f93a912-7a51-42a8-9641-f72c3f5bf3de"
                                  name="returnValue"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-returnValue-lowerValue"
                                 xmi:uuid="188ee6c4-e857-4af4-ba9c-9cfaa9d5dde4"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-getLinksToDestroy_-returnValue-upperValue"
                                 xmi:uuid="a8374340-c57a-4a73-8731-e09c354b5b40"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3"
                               xmi:uuid="a164aa15-c68f-4d61-aa2b-ddc7e3de92bf"
                               name="getPotentialLinkEnds"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3-ownedParameter-1"
                                  xmi:uuid="e8cdbc5d-46e3-43e8-9cf2-d06e65962c82"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3-ownedParameter-2"
                                  xmi:uuid="76ac1e46-5ced-42d4-b799-ab2551ad2130"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3-ownedParameter-3"
                                  xmi:uuid="495028b8-67f4-4404-b80e-b7c529609ba4"
                                  name="returnValue"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3-ownedParameter-3-lowerValue"
                                 xmi:uuid="20f6fe7a-f9ef-4d99-b78a-4872268295fc"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_RemoveStructuralFeatureValueActionActivation-ownedOperation-3-ownedParameter-3-upperValue"
                                 xmi:uuid="2944086d-a3e9-4aa4-abfe-11da249bf9f5"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation"
                             xmi:uuid="10b520dc-43ee-4ed2-8a7a-7f93f54bd20a"
                             name="CS_ClearStructuralFeatureActionActivation">
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-generalization"
                               xmi:uuid="4dbd2b64-d5bf-4077-a4af-437a89bfbb2e">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-ClearStructuralFeatureActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-1"
                              xmi:uuid="2e0996d2-0d3f-46aa-a5d1-d82aa27bac0c"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-1">
                  <body>		// Get the value of the object input pin.
		// If the given feature is an association end, then
		// destroy all links that have the object input on the opposite end.
		// Otherwise, if the object input is a structured value, then
		// set the appropriate feature of the input value to be empty.
		ClearStructuralFeatureAction action = (ClearStructuralFeatureAction)(this.node);
		StructuralFeature feature = action.structuralFeature;
		Association association = this.getAssociation(feature);
		Value value = this.takeTokens(action.object).get(0);
		if(association != null) {
			LinkList links = this.getMatchingLinks(association, feature, value);
			for(int i = 0; i &lt; links.size(); i++) {
				Link link = links.get(i);
				link.destroy();
			}
		} else if(value instanceof StructuredValue) {
			// If the value is a data value, then it must be copied before
			// any change is made.
			if(!(value instanceof Reference)) {
				value = value.copy();
			}
			else {
				// extension to fUML
				CS_LinkList linksToDestroy = this.getLinksToDestroy((StructuredValue)value, feature) ;
				for (int i = 0 ; i &lt; linksToDestroy.size() ; i++) {
					linksToDestroy.get(i).destroy() ;
				}
				//
			}
			((StructuredValue)value).setFeatureValue(action.structuralFeature, new ValueList(), 0);
		}
		if(action.result != null) {
			this.putToken(action.result, value);
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-2"
                              xmi:uuid="2863eaea-044e-4fa6-95b0-37b2b0f6bd30"
                              name="getLinksToDestroy"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-2">
                  <body>		CS_LinkList linksToDestroy = new CS_LinkList() ;
		if (value instanceof CS_Reference) {
			CS_Reference context = (CS_Reference)value ;
			// Retrieves the feature values for the structural feature associated with this action,
			// in the context of this reference 
			FeatureValue featureValue = context.getFeatureValue(feature) ;
			if (feature instanceof Port) {
				// all values are interaction points
				// any link targeting this interaction point must be destroyed
				for (int i = 0 ; i &lt; featureValue.values.size() ; i++) {
					CS_InteractionPoint interactionPoint = (CS_InteractionPoint)featureValue.values.get(i) ;
					CS_LinkList connectorInstances = context.compositeReferent.getLinks(interactionPoint) ;
					for (int j = 0 ; j &lt; connectorInstances.size() ; j++) {
						CS_Link link = connectorInstances.get(j) ;
						linksToDestroy.add(link) ;
					}
				}
			}
			else { // feature is an attribute
				// Retrieve all potential link ends,
				// separating potential link ends corresponding to the given feature,
				// and potential link ends corresponding to other features.
				// By "potential link ends", we refer to the values of a given feature,
				// as well as interaction points associated with this value, if any.
				ValueList allValuesForFeature = new ValueList() ;
				ValueList allOtherValues = new ValueList() ;
				for (int i = 0 ; i &lt; context.referent.featureValues.size() ; i++) {
					StructuralFeature currentFeature = context.referent.featureValues.get(i).feature ;
					ValueList values = this.getPotentialLinkEnds(context, currentFeature) ;
					for (int j = 0 ; j &lt; values.size() ; j++) {
						Value v = values.get(j) ;
						if (currentFeature != feature) {
							allOtherValues.add(v) ;
						}
						else {
							allValuesForFeature.add(v) ;
						}
					}
				}
				// Retrieves all links available at the locus
				ExtensionalValueList extensionalValues = this.getExecutionLocus().extensionalValues ;
				CS_LinkList allLinks = new CS_LinkList() ;
				for (int i = 0 ; i &lt; extensionalValues.size() ; i ++) {
					ExtensionalValue extensionalValue = extensionalValues.get(i) ;
					if (extensionalValue instanceof CS_Link) {
						allLinks.add((CS_Link)extensionalValue) ;
					}
				}
				// Retrieves links representing connector instances in the context object 
				for (int i = 0 ; i &lt; allLinks.size() ; i++) {
					CS_Link link = allLinks.get(i) ;
					boolean linkHasToBeDestroyed = false ;
					for (int j = 0 ; j &lt; allValuesForFeature.size() &amp;&amp; !linkHasToBeDestroyed; j++) {
						Value v = allValuesForFeature.get(j) ;
						StructuralFeature featureForV = link.getFeature(v) ;
						if (featureForV != null) {
							// Check if feature values of this link for other features
							// contains elements identified in allOtherValue
							for (int k = 0 ; k &lt; link.featureValues.size() &amp;&amp; !linkHasToBeDestroyed ; k++) {
								FeatureValue otherFeatureValue = link.featureValues.get(k) ;
								if (otherFeatureValue.feature != featureForV) {
									for (int l = 0 ; l &lt; otherFeatureValue.values.size() &amp;&amp; !linkHasToBeDestroyed ; l++) {
										for (int m = 0 ; m &lt; allOtherValues.size() &amp;&amp; !linkHasToBeDestroyed ; m++) {
											if (otherFeatureValue.values.get(l) == allOtherValues.get(m)) {
												linkHasToBeDestroyed = true ;
											}
										}
									}
								}
							}
						}
					}
					if (linkHasToBeDestroyed) {
						linksToDestroy.add(link) ;
					}
				}
			}
		}
		return linksToDestroy ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-3"
                              xmi:uuid="63fbb0b1-d46b-4dc2-8ad1-8f8e8a754be3"
                              name="getPotentialLinkEnds"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-3">
                  <body>		// Retrieves all feature values for the context object for the given feature,
		// as well as all interaction point for these values
		ValueList potentialLinkEnds = new ValueList() ;
		FeatureValue featureValue = context.getFeatureValue(feature) ;
		for (int i = 0 ; i &lt; featureValue.values.size() ; i++) {
			Value v = featureValue.values.get(i) ;
			potentialLinkEnds.add(v) ;
			if (v instanceof CS_Reference) {
				// add all interaction points associated with v
				for (int j = 0 ; j &lt; ((CS_Reference)v).referent.featureValues.size() ; j++) {
					if (((CS_Reference)v).referent.featureValues.get(j).feature instanceof Port) {
						ValueList interactionPoints = (((CS_Reference)v).referent.featureValues.get(j)).values ;
						for (int k = 0 ; k &lt; interactionPoints.size() ; k++) {
							potentialLinkEnds.add(interactionPoints.get(k)) ;
						}
					}
				}
			}
		}
		return potentialLinkEnds ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-1"
                               xmi:uuid="8c2eadc0-2b73-4840-a24a-d8a6c32dde42"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-1-ownedComment"
                                xmi:uuid="c3b81b55-0846-4247-a998-ad58cc6eb362"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public doAction () { // If the feature is a port and the input value to be added is a Reference, // Replaces this Reference by an InteractionPoint, and then behaves // as usual. // If the feature is not a port, behaves as usual AddStructuralFeatureValueAction action = (AddStructuralFeatureValueAction)(this.node); StructuralFeature feature = action.structuralFeature; if (! (feature instanceof Port)) { // Behaves as usual super.doAction() ; } else { ValueList inputValues = this.takeTokens(action.value); // NOTE: Multiplicity of the value input pin is required to be 1..1. Value inputValue = inputValues.getValue(0); if (inputValue instanceof Reference) { // First constructs an InteractionPoint from the inputValue Reference reference = (Reference)inputValue ; InteractionPoint interactionPoint = new InteractionPoint() ; interactionPoint.referent = reference.referent ; interactionPoint.definingPort = (Port)feature ; // The value on action.object is necessarily instanceof // ReferenceToCompositeStructure (otherwise, the feature cannot // be a port) ReferenceToCompositeStructure owner = (ReferenceToCompositeStructure)this .takeTokens(action.object).getValue(0); interactionPoint.owner = owner ; // Then replaces the Reference by an InteractionPoint // in the inputValues inputValues.remove(0) ; inputValues.addValue(0,interactionPoint) ; // Finally concludes with usual fUML behavior of // AddStructuralFeatureValueAction (i.e., the usual behavior when // the value on action.object pin is a StructuredValue) Integer insertAt = 0; if (action.insertAt != null) { insertAt = ((UnlimitedNaturalValue)this .takeTokens(action.insertAt).getValue(0)) .value.naturalValue; } if (action.isReplaceAll) { owner.setFeatureValue(feature, inputValues, 0); } else { FeatureValue featureValue = owner.getFeatureValue(feature); if (featureValue.values.size() &gt; 0 &amp; insertAt == 0 ) { // If there is no insertAt pin, then the structural feature must // be unordered, and the insertion position is immaterial. insertAt = ((ChoiceStrategy)this.getExecutionLocus() .factory.getStrategy(&#34;choice&#34;)) .choose(featureValue.values.size()); } if (feature.multiplicityElement.'isUnique') { // Remove any existing value that duplicates the input value Integer j = position(inputValue, featureValue.values, 1); if (j &gt; 0) { featureValue.values.remove(j-1); if (insertAt &gt; 0 &amp; j &lt; insertAt) { insertAt = insertAt - 1; } } } if (insertAt &lt;= 0) { // Note: insertAt = -1 indicates an unlimited value of &#34;*&#34; featureValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } if (j &gt; 0) { featureValue.values.remove(j-1); if (insertAt &gt; 0 &amp; j &lt; insertAt) { insertAt = insertAt - 1; } } } if (insertAt &lt;= 0) { // Note: insertAt = -1 indicates an unlimited value of &#34;*&#34; featureValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } reValue.values.addValue(inputValue); } else { featureValue.values.addValue(insertAt - 1, inputValue); } } } else { // behaves as usual super.doAction(); } } } lse { // behaves as usual super.doAction(); } } } ;&#xA;&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;}&#x9;&#xA;&#xA;} "/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-2"
                               xmi:uuid="c1536bd6-f305-493f-8d87-11f4647bbf00"
                               name="getLinksToDestroy"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getLinksToDestroy-value"
                                  xmi:uuid="a11c2fe4-b49e-47ae-9eec-59d9d7bc2c5d"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-StructuredValue"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getLinksToDestroy-feature"
                                  xmi:uuid="11b0cdb8-482e-4200-bef3-16dc89c54a70"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getLinksToDestroy-result"
                                  xmi:uuid="ff3f9495-f959-4b1d-9457-8b8fe7099919"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getLinksToDestroy-result-lowerValue"
                                 xmi:uuid="7f4b0bfd-9ceb-41ea-85a5-32717ce80e1d"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getLinksToDestroy-result-upperValue"
                                 xmi:uuid="5313c954-e9ad-4ab3-b086-0e0ca36e6075"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedOperation-3"
                               xmi:uuid="d35351db-3992-4043-8737-ee0d95c7dfa0"
                               name="getPotentialLinkEnds"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getPotentialLinkEnds-context"
                                  xmi:uuid="f66ba115-4a49-4ecc-aa4a-ceb6a2048fdf"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getPotentialLinkEnds-feature"
                                  xmi:uuid="c4109aa4-5401-477a-878c-cc7e0da7a0dd"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ClearStructuralFeatureActionActivation-getPotentialLinkEnds-result"
                                  xmi:uuid="20d432bb-07aa-4d32-90c2-95eb763e2099"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation"
                             xmi:uuid="75a2158a-ca36-4cb2-b5b5-af37c49c0821"
                             name="CS_CreateLinkActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-ownedComment"
                             xmi:uuid="e008d3c9-60c5-46c2-a82a-af3c245426e6"
                             body="fUML semantics is extended in the sense that a CS_Link is created instead of a Link. [Note: This extension can be avoided if fUML introduces a factory for Link]"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-generalization"
                               xmi:uuid="8e8d1102-15e0-4427-bd1f-ae97852e7138">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-CreateLinkActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-ownedBehavior"
                              xmi:uuid="f154a7a0-1602-4041-b161-093014e30d61"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-ownedOperation">
                  <body>		// Get the extent at the current execution locus of the association for
		// which a link is being created.
		// Destroy all links that have a value for any end for which
		// isReplaceAll is true.
		// Create a new link for the association, at the current locus, with the
		// given end data values,
		// inserted at the given insertAt position (for ordered ends).
		// fUML semantics is extended in the sense that a CS_Link is created instead of
		// a Link

		CreateLinkAction action = (CreateLinkAction) (this.node);
		LinkEndCreationDataList endDataList = action.endData;

		Association linkAssociation = this.getAssociation();
		ExtensionalValueList extent = this.getExecutionLocus().getExtent(
				linkAssociation);

		Link oldLink = null;
		for (int i = 0; i &lt; extent.size(); i++) {
			ExtensionalValue value = extent.getValue(i);
			Link link = (Link) value;

			boolean noMatch = true;
			int j = 1;
			while (noMatch &amp; j &lt;= endDataList.size()) {
				LinkEndCreationData endData = endDataList.getValue(j - 1);
				if (endData.isReplaceAll
						&amp; this.endMatchesEndData(link, endData)) {
					oldLink = link;
					link.destroy();
					noMatch = false;
				}
				j = j + 1;
			}
		}

		CS_Link newLink = new CS_Link();
		newLink.type = linkAssociation;

		// This necessary when setting a feature value with an insertAt position
		newLink.locus = this.getExecutionLocus();

		for (int i = 0; i &lt; endDataList.size(); i++) {
			LinkEndCreationData endData = endDataList.getValue(i);

			int insertAt;
			if (endData.insertAt == null) {
				insertAt = 0;
			} else {
				insertAt = ((UnlimitedNaturalValue) (this
						.takeTokens(endData.insertAt).getValue(0))).value.naturalValue;
				if (oldLink != null) {
					if (oldLink.getFeatureValue(endData.end).position &lt; insertAt) {
						insertAt = insertAt - 1;
					}
				}
			}
			newLink.setFeatureValue(endData.end,
					this.takeTokens(endData.value), insertAt);
		}

		this.getExecutionLocus().add(newLink);</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-ownedOperation"
                               xmi:uuid="874cdba1-cd25-445b-9f4a-52717a245af6"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CreateLinkActionActivation-ownedBehavior"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation"
                             xmi:uuid="83fdb51c-de23-4edd-a76c-e79dbd0f1d5a"
                             name="CS_CreateObjectActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-ownedComment"
                             xmi:uuid="fb20bd59-7a5f-40f5-a711-cb1850abdc31"
                             body="Extends fUML semantics in the sense that the reference placed on the result pin is a CS_Reference (in the case where the instantiated object is a CS_Object) not a Reference. [Note: this extension can be avoided if fUML introduces a factory for Reference]"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-generalization"
                               xmi:uuid="04fb5b6c-a65e-4780-9685-d3488bde67be">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-CreateObjectActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-ownedBehavior"
                              xmi:uuid="7fd69a13-1d75-4a18-a8db-6926960058fe"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-ownedOperation">
                  <body>		// Create an object with the given classifier (which must be a class) as
		// its type, at the same locus as the action activation.
		// Place a reference to the object on the result pin of the action.
		// Extends fUML semantics in the sense that the reference placed
		// on the result pin is a CS_Reference (in the case where the instantiated object
		// is a CS_Object) not a Reference
		// Note that Locus.instantiate(Class) is extended in this specification
		// to produce a CS_Object instead of an Object in the case where the class
		// to be instantiated is not a behavior

		CreateObjectAction action = (CreateObjectAction) (this.node);

		Reference reference ;
		Object_ referent =  this.getExecutionLocus().instantiate((Class_) (action.classifier));
		if (referent instanceof CS_Object) {
			reference = new CS_Reference() ;
			((CS_Reference)reference).compositeReferent = (CS_Object)referent ;
		}
		else {
			reference = new Reference() ;
		}
		reference.referent = referent ;

		this.putToken(action.result, reference);</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-ownedOperation"
                               xmi:uuid="1dd9e834-3c0d-4b94-b7bd-901da34f6e37"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CreateObjectActionActivation-ownedBehavior"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation"
                             xmi:uuid="84e4d13a-3392-45b1-8c1f-740107faba92"
                             name="CS_CallOperationActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedComment"
                             xmi:uuid="ce36f3eb-2f79-44df-9b5b-df8b1333a553"
                             body="Extends fUML CallOperationActionActivation::getCallExecution() to capture dispatching semantics of requests across ports. (Note: Adresses requirement R2 &#34;Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.&#34;))"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-generalization"
                               xmi:uuid="851d4674-9df7-442e-a971-0aa7c146a343">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-CallOperationActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-1"
                              xmi:uuid="e0b2ace1-b397-4006-91d3-be91642ed9c4"
                              name="getCallExecution"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-1">
                  <body>		// If onPort is not specified, behaves like in fUML
		// If onPort is specified, and if the value on the target input pin is a 
		// reference, dispatch the operation 
		// to it and return the resulting execution object.
		// As compared to fUML, instead of dispatching directly to target reference 
		// by calling operation dispatch:
		// - If the invoked BehavioralFeature is on a provided Interface but not on any required Interface, 
		// then, when the InvocationAction is executed, the invocation is made into the object given on 
		// the target InputPin through the given Port
		// - If the invoked BehavioralFeature is on a required Interface but not on any provided Interface, 
		// then, if the InvocationAction is being executed inside the object given on the target InputPin, 
		// the invocation is forwarded out of the target object through the given Port.
		// - If the invoked BehavioralFeature is on both a provided and a required Interface, 
		// then, if the InvocationAction is being executed inside the object given on the target InputPin, 
		// the invocation is made out of the target object through the given Port. 
		// Otherwise the invocation is made into the target object through the given Port.

		CallOperationAction action = (CallOperationAction)(this.node);
		Execution execution = null ; 
		if (action.onPort == null ) {
			execution = super.getCallExecution() ;
		}
		else {
			Value target = this.takeTokens(action.target).get(0);
			if (target instanceof CS_Reference) {
				// Tries to determine if the operation call has to be
				// dispatched to the environment or to the internals of
				// target, through onPort
				CS_Reference targetReference = (CS_Reference)target ;
				Object_ executionContext = this.getActivityExecution().context;
				boolean operationIsOnProvidedInterface = this.isOperationProvided(action.onPort, action.operation) ;
				boolean operationIsOnRequiredInterface = this.isOperationRequired(action.onPort, action.operation) ;
				// Operation on a provided interface only
				if (operationIsOnProvidedInterface &amp;&amp; !operationIsOnRequiredInterface) {
					execution = targetReference.dispatchIn(action.operation, action.onPort);
				}
				// Operation is on a required interface only
				else if (!operationIsOnProvidedInterface &amp;&amp; operationIsOnRequiredInterface){
					// If not executing in the context of the target,
					// Semantics are undefined.
					// Otherwise, dispatch outside.
					if (executionContext == targetReference.referent 
							|| targetReference.compositeReferent.contains(executionContext)) {
						execution = targetReference.dispatchOut(action.operation, action.onPort);
					}
				}
				// Operation is both on a provided and a required interface
				else if (operationIsOnProvidedInterface &amp;&amp; operationIsOnRequiredInterface) {
					if (executionContext == targetReference.referent 
							|| targetReference.compositeReferent.contains(executionContext)) {
						execution = targetReference.dispatchOut(action.operation, action.onPort);
					}
					else {
						execution = targetReference.dispatchIn(action.operation, action.onPort);
					}
				}
			}
		}
		return execution;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-1-ownedParameter"
                                  xmi:uuid="937351e4-e798-41b0-b1b9-7e8a4bb5bcc2"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-2"
                              xmi:uuid="542b626d-1291-436e-bbcf-f9e4ec5ade99"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-2">
                  <body>		CallOperationAction action = (CallOperationAction)(this.node);
		// First determines if this is a call to a constructor and if a default 
		// construction strategy needs to be applied.
		// This is a call to a constructor if the called operation has 
		// stereotype &lt;&lt;Create&gt;&gt; applied. 
		// The default construction strategy is used if no method is associated with the 
		// &lt;&lt;Create&gt;&gt; operation.
		// Otherwise, behaves like in fUML.
		if (action.onPort == null &amp;&amp; this.isCreate(action.operation) &amp;&amp; action.operation.method.size() == 0) {
			Locus locus = this.getExecutionLocus() ;
			CS_ConstructStrategy strategy = ((CS_ConstructStrategy)locus.factory.getStrategy("constructStrategy")) ;
			Value target = this.takeTokens(action.target).get(0);
			if (target instanceof CS_Reference) {
				strategy.construct(action.operation, ((CS_Reference)target).compositeReferent) ;
				ParameterList parameters = action.operation.ownedParameter ;
				OutputPinList resultPins = action.result ;
				ValueList values = new ValueList() ;
				values.add(target) ;
				int i = 1 ;
				while(i &lt;= parameters.size()) {
					Parameter parameter = parameters.get(i - 1);
					if(parameter.direction == ParameterDirectionKind.return_) {
						OutputPin resultPin = resultPins.get(0);
						this.putTokens(resultPin, values);
					}
					i = i + 1;
				}
			}
		}
		else {
			super.doAction();
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-3"
                              xmi:uuid="237e3c06-7ad5-434e-9c8e-6f2e2be9c8f6"
                              name="isOperationProvided"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-3">
                  <body>		boolean isProvided = false ;
		if (operation.owner instanceof Interface) {
			// We have to look in provided interfaces of the port if 
			// they define directly or indirectly the Operation
			Integer interfaceIndex = 1 ;
			// Iterates on provided interfaces of the port
			InterfaceList providedInterfaces = port.provided ;
			while (interfaceIndex &lt;= providedInterfaces.size() &amp;&amp; !isProvided) {
				Interface interface_ = providedInterfaces.get(interfaceIndex-1) ;
				// Iterates on members of the current Interface
				Integer memberIndex = 1 ;
				while (memberIndex &lt;= interface_.member.size() &amp;&amp; !isProvided) {
					NamedElement cddOperation = interface_.member.get(memberIndex-1) ;
					if (cddOperation instanceof Operation) {
						isProvided = operation == cddOperation ;
					}
					memberIndex = memberIndex + 1 ;
				}
				interfaceIndex = interfaceIndex + 1 ;
			}
		}
		return isProvided ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-4"
                              xmi:uuid="bb13e76e-7965-4ffe-ba6e-2a4408391002"
                              name="isOperationRequired"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-4">
                  <body>		boolean isRequired = false ;
		Integer interfaceIndex = 1 ;
		// Iterates on provided interfaces of the port
		InterfaceList requiredInterfaces = port.required ;
		while (interfaceIndex &lt;= requiredInterfaces.size() &amp;&amp; !isRequired) {
			Interface interface_ = requiredInterfaces.get(interfaceIndex-1) ;
			// Iterates on members of the current Interface
			Integer memberIndex = 1 ;
			while (memberIndex &lt;= interface_.member.size() &amp;&amp; !isRequired) {
				NamedElement cddOperation = interface_.member.get(memberIndex-1) ;
				if (cddOperation instanceof Operation) {
					isRequired = operation == cddOperation ;
				}
				memberIndex = memberIndex + 1 ;
			}
			interfaceIndex = interfaceIndex + 1 ;
		}
		return isRequired ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-5"
                              xmi:uuid="531b7d6a-3a5a-41cf-8652-cb3d9b5679ee"
                              name="isCreate"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-5">
                  <body>		CS_ExecutionFactory executionFactory = (CS_ExecutionFactory)this.getExecutionLocus().factory ;
		Class_ stereotypeCreate = executionFactory.getStereotypeClass("StandardProfile", "Create") ;
		if (stereotypeCreate == null) {
			// standard profile is not applied
			return false ;
		}
		return executionFactory.getStereotypeApplication(stereotypeCreate, o) != null ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-1"
                               xmi:uuid="a6f9560c-65f0-4f9f-a5df-a73d0cbc2f17"
                               name="getCallExecution"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-1-ownedComment"
                                xmi:uuid="a6fdcdf9-e348-432c-9451-b24dc472e139"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public getCallExecution() : Execution { // If onPort is not specified, behaves like in fUML // If onPort is specified, and if the value on the target input pin is a // reference, dispatch the operation // to it and return the resulting execution object. // As compared to fUML, instead of dispatching directly to target reference // by calling operation dispatch, // dispatchOut is called, so that the operation call will be finally // dispatched to the environment (from where the execution will be taken). CallOperationAction action = (CallOperationAction)(this.node); Execution execution = null ; if (action.onPort == null ) { execution = super.getCallExecution() ; } else { Value target = this.takeTokens(action.target).getValue(0); if (target instanceof ReferenceToCompositeStructure) { execution = ((ReferenceToCompositeStructure)target) .dispatchOut(action.operation, action.onPort); } } return execution; }atchOut(action.operation, action.onPort); } } return execution; }tion;&#xA;&#xA;&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-1-ownedParameter"
                                  xmi:uuid="633185da-6894-4170-83fe-a185cea51df0"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-2"
                               xmi:uuid="1882827b-08ef-4478-b246-3a6bb93c6125"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-2"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-3"
                               xmi:uuid="694c52b5-b849-4cfc-9228-547874b65471"
                               name="isOperationProvided"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationProvided-port"
                                  xmi:uuid="b20ddb15-6654-4f6c-ba87-7e5463271089"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationProvided-operation"
                                  xmi:uuid="470b0a74-689f-434f-af46-973371bbcb58"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationProvided-result"
                                  xmi:uuid="4147ab57-4c51-4602-b9bd-fc7928441838"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-4"
                               xmi:uuid="41961643-25a9-4013-b8d5-802052571edc"
                               name="isOperationRequired"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-4"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationRequired-port"
                                  xmi:uuid="a0a5fb04-8777-4f42-a464-09403ceca8c0"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationRequired-operation"
                                  xmi:uuid="a3535596-9549-45a8-874b-370bd6c4c0df"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isOperationRequired-result"
                                  xmi:uuid="ddbb1d44-5a55-4e37-a4fd-2d47da1adbaf"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedOperation-5"
                               xmi:uuid="59415c71-0c99-408a-a049-8a44a6e3a9cd"
                               name="isCreate"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-ownedBehavior-5"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isCreate-operation"
                                  xmi:uuid="2013b6e1-dbce-4013-a02a-d8199e5887d0"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_CallOperationActionActivation-isCreate-result"
                                  xmi:uuid="0fbad75d-4304-4300-9129-b9f19ace36ff"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy"
                             xmi:uuid="5922284b-474a-4eec-9e53-aecc7f408660"
                             name="CS_ConstructStrategy"
                             isAbstract="true">
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-generalization"
                               xmi:uuid="337107d8-60ca-470e-92d3-4f18caf2dd01">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticStrategy"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-ownedBehavior"
                              xmi:uuid="88b8d1e2-81e2-4ce3-8fc0-6f31591dc938"
                              name="getName"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-ownedOperation-1">
                  <body>		// a CS_ConstructionStrategy is always named "constructStrategy"
		return "constructStrategy";</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-ownedOperation-1"
                               xmi:uuid="afc7a493-91e8-42be-9ec8-622c0a67ae71"
                               name="getName"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-getName-result"
                                  xmi:uuid="c3311b58-e1ae-4101-8ed2-d05e959915bc"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-construct"
                               xmi:uuid="c3cd5c7d-2324-43f5-93a0-866fe63cdd18"
                               name="construct"
                               visibility="public"
                               isAbstract="true">
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-construct-constructor"
                                  xmi:uuid="cf70faf2-ad65-4775-8a8c-0cd50021c3cb"
                                  name="constructor"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-construct-context"
                                  xmi:uuid="4e7dbcb6-3f38-43db-9e66-2eeff2898a48"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-construct-result"
                                  xmi:uuid="ccc66e9c-c81c-4003-9647-774c4910ab46"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy"
                             xmi:uuid="36dfc6ea-91e4-4611-af31-02e048f1bd06"
                             name="CS_DefaultConstructStrategy">
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generalization"
                               xmi:uuid="9ddac953-db71-41c9-a41b-88c53e499395"
                               general="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy"/>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-1"
                              xmi:uuid="76c6e36c-e79e-42d8-9447-2b599ed50dad"
                              name="construct"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-1">
                  <body>		this.locus = context.locus ;
		return this.constructObject(context, (Class_)constructor.type) ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-2"
                              xmi:uuid="53b7ba10-7866-4469-b7f1-d4e1bf0d2ee5"
                              name="canInstantiate"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-3">
                  <body>		// Instantiate is possible if:
		// - p is composite
		// - p is typed
		// - This type is a Class and it is not abstract
		// - Or p is a Port and the type is an Interface
		if (p.isComposite) {
			if (p.typedElement.type != null) {
				if (p.typedElement.type instanceof Class_) {
					return ! ((Class_)p.typedElement.type).isAbstract ;
				}
				else if (p.typedElement.type instanceof Interface) { 
					return p instanceof Port ;
				}
			}
		}
		return false ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-3"
                              xmi:uuid="e5a8c214-4dd0-42c0-bc30-650cc2843192"
                              name="constructObject"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-4">
                  <body>		CS_Reference referenceToContext = new CS_Reference() ;
		referenceToContext.referent = context ;
		referenceToContext.compositeReferent = (CS_Object)context ;
		// FIXME detect infinite recursive instantiation
		PropertyList allAttributes = type.attribute ;
		int i = 1 ;
		// Instantiate ports and parts
		while (i &lt;= allAttributes.size()) {
			Property p = allAttributes.get(i - 1) ;
			if (p.default_ != null) {
				ValueSpecification defaultValueSpecification = p.default_ ;
				Evaluation evaluation = (Evaluation)context.locus.factory.instantiateVisitor(defaultValueSpecification) ;
				evaluation.specification = defaultValueSpecification ;
				evaluation.locus = context.locus ;
				if (evaluation instanceof CS_OpaqueExpressionEvaluation) {
					ValueList evaluations = ((CS_OpaqueExpressionEvaluation)evaluation).executeExpressionBehavior() ;
					for (int j = 0 ; j &lt; evaluations.size() ; j++) {
						this.addStructuralFeatureValue(referenceToContext, p, evaluations.get(j)) ;
					}
				}
				else {
					Value defaultValue = evaluation.evaluate() ;
					this.addStructuralFeatureValue(referenceToContext, p, defaultValue) ;
				}
			}
			else 
				if (this.canInstantiate(p)) {
					int j = 1 ;
					while (j &lt;= p.multiplicityElement.lower) {
						Object_ value ;
						// if p is a Port typed by an Interface
						// creates an Object without type, but with FeatureValues corresponding to 
						// structural features of the interface.
						if (p instanceof Port &amp;&amp; p.typedElement.type instanceof Interface) {
							value = this.instantiateInterface((Interface)p.typedElement.type, this.locus) ;
							this.addStructuralFeatureValue(referenceToContext, p, value);
						}
						else {
							value = context.locus.instantiate((Class_)p.typedElement.type) ;
							// TODO account for existing constructors
							value = this.constructObject((CS_Object)value, (Class_)p.typedElement.type) ;
							this.addStructuralFeatureValue(referenceToContext, p, (CS_Object)value) ;
							if (((Class_)p.typedElement.type).isActive) {
								value.startBehavior((Class_)p.typedElement.type, new ParameterValueList()) ;
							}
						}
						j = j + 1 ;
					}
				}
			i = i + 1 ;
		}
		// Instantiate connectors
		NamedElementList allMembers = type.member ;
		i = 1 ;
		while (i &lt;= allMembers.size()) {
			NamedElement member = allMembers.get(i - 1) ;
			if (member instanceof Connector) {
				Connector connector = (Connector)member ;
				if (this.isArrayPattern(connector)) {
					this.generateArrayPattern(referenceToContext, connector) ;
				}
				else if (this.isStarPattern(connector)) {
					this.generateStarPattern(referenceToContext, connector) ;
				}
			}
			i = i + 1 ;
		}
		return referenceToContext.referent ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-4"
                              xmi:uuid="afd0b0d8-b092-4ea3-bfe6-690f8776cb71"
                              name="generateArrayPattern"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-5">
                  <body>		ConnectorEnd end1 = connector.end.getValue(0) ;
		ConnectorEnd end2 = connector.end.getValue(1) ;
		ReferenceList end1Values = this.getValuesFromConnectorEnd(context, end1) ;
		ReferenceList end2Values = this.getValuesFromConnectorEnd(context, end2) ;
		for (int i = 0 ; i &lt; end1Values.size() ; i++) {
			CS_Link link = new CS_Link() ;
			if (connector.type == null) {
				link.type = this.getDefaultAssociation() ;
			}
			else {
				link.type = connector.type ;
			}
			ValueList valuesForEnd1 = new ValueList() ;
			valuesForEnd1.add(end1Values.get(i)) ;
			ValueList valuesForEnd2 = new ValueList() ;
			valuesForEnd2.add(end2Values.get(i)) ;
			link.setFeatureValue(link.type.ownedEnd.getValue(0), valuesForEnd1, -1) ;
			link.setFeatureValue(link.type.ownedEnd.getValue(1), valuesForEnd2, -1) ;
			link.addTo(context.referent.locus) ;
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-5"
                              xmi:uuid="bdecdb30-1f52-401d-acb8-70c020627958"
                              name="generateStarPattern"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-6">
                  <body>		ConnectorEnd end1 = connector.end.getValue(0) ;
		ConnectorEnd end2 = connector.end.getValue(1) ;
		ReferenceList end1Values = this.getValuesFromConnectorEnd(context, end1) ;
		ReferenceList end2Values = this.getValuesFromConnectorEnd(context, end2) ;
		for (int i = 0 ; i &lt; end1Values.size() ; i++) {
			for (int j = 0 ; j &lt; end2Values.size(); j++) {
				CS_Link link = new CS_Link() ;
				if (connector.type == null) {
					link.type = this.getDefaultAssociation() ;
				}
				else {
					link.type = connector.type ;
				}
				ValueList valuesForEnd1 = new ValueList() ;
				valuesForEnd1.add(end1Values.get(i)) ;
				ValueList valuesForEnd2 = new ValueList() ;
				valuesForEnd2.add(end2Values.get(j)) ;
				link.setFeatureValue(link.type.ownedEnd.get(0), valuesForEnd1, -1) ;
				link.setFeatureValue(link.type.ownedEnd.get(1), valuesForEnd2, -1) ;
				link.addTo(context.referent.locus) ;
			}
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-6"
                              xmi:uuid="2158948c-4b78-4cbb-b70c-a97e145679fd"
                              name="getCardinality"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-7">
                  <body>		int lowerOfRole = end.role.actualConnectableElement.multiplicityElement.lower ;
		if (lowerOfRole == 0) {
			return 0 ;
		}
		else if (end.partWithPort == null) {
			return lowerOfRole ;
		}
		else {
			int lowerOfPart = end.partWithPort.multiplicityElement.lower ;
			return lowerOfRole * lowerOfPart ;
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-7"
                              xmi:uuid="d34908cf-d09a-48bf-9c2c-2588446770d9"
                              name="getValuesFromConnectorEnd"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-8">
                  <body>		ReferenceList endValues = new ReferenceList() ;
		if (end.partWithPort != null) {
			FeatureValue valueForPart = context.getFeatureValue(end.partWithPort) ;
			if (valueForPart != null) {
				for (int i = 0 ; i &lt; valueForPart.values.size() ; i++) {
					Reference reference = (Reference)valueForPart.values.get(i) ;
					FeatureValue valueForPort = reference.getFeatureValue((Port)end.role.actualConnectableElement) ;
					if (valueForPort != null) {
						for (int j = 0 ; j &lt; valueForPort.values.size() ; j++) {
							endValues.add((Reference)valueForPort.values.get(j)) ;
						}
					}
				}
			}
		}
		else {
			FeatureValue valueForRole = context.getFeatureValue((Property)end.role.actualConnectableElement) ;
			if (valueForRole != null) {
				for (int i = 0 ; i &lt; valueForRole.values.size() ; i++) {
					endValues.add((Reference)valueForRole.values.get(i)) ;
				}
			}
		}
		return endValues ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-8"
                              xmi:uuid="cbb58440-5212-4463-8f83-d8cbe995e54f"
                              name="isArrayPattern"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-9">
                  <body>		// This is an array pattern if:
		// - c is binary
		// - lower bound of the two connector ends is 1
		// - Cardinality of ends are equals
		if (c.end.size() == 2) {
			if (c.end.get(0).role.actualConnectableElement.multiplicityElement.lower == 1) {
				if (c.end.get(1).role.actualConnectableElement.multiplicityElement.lower == 1) {
					if (this.canInstantiate(c.end.get(0).role.actualConnectableElement)
							&amp;&amp; this.canInstantiate(c.end.get(1).role.actualConnectableElement)) {
						int cardinality1 = this.getCardinality(c.end.get(0)) ;
						int cardinality2 = this.getCardinality(c.end.get(1)) ;
						return cardinality1 == cardinality2 ;
					}
				}
			}
		}
		return false ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-9"
                              xmi:uuid="b1ffe4d3-b516-4eef-91f2-e7c5a6db38b2"
                              name="isStarPattern"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-10">
                  <body>		// This is an array pattern if:
		// - c is binary
		// - lower bound of end1 equals cardinality of end1
		// - lower bound of end2 equals cardinality of end2
		if (c.end.size() == 2) {
			if (this.canInstantiate(c.end.get(0).role.actualConnectableElement)
					&amp;&amp; this.canInstantiate(c.end.get(1).role.actualConnectableElement)) {
				int cardinalityOfEnd1 = this.getCardinality(c.end.get(0)) ;
				int lowerBoundofEnd1 = c.end.get(0).role.actualConnectableElement.multiplicityElement.lower ;
				if (cardinalityOfEnd1 == lowerBoundofEnd1) {
					int cardinalityOfEnd2 = this.getCardinality(c.end.get(1)) ;
					int lowerBoundofEnd2 = c.end.get(1).role.actualConnectableElement.multiplicityElement.lower ;
					return cardinalityOfEnd2 == lowerBoundofEnd2 ;
				}
			}
		}
		return false ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-10"
                              xmi:uuid="f4120efd-1b89-42d2-9c8b-fff4e8c188c8"
                              name="addStructuralFeatureValue"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-2">
                  <body>		FeatureValue featureValue = context.getFeatureValue(feature) ;
		if (featureValue != null) {
			ValueList values = featureValue.values ;
			if (feature instanceof Port) {
				// insert an interaction point
				CS_InteractionPoint interactionPoint = new CS_InteractionPoint() ;
				interactionPoint.definingPort = (Port)feature ;
				interactionPoint.referent = (CS_Object)value ;
				interactionPoint.owner = context ;
				values.add(interactionPoint) ;
			}
			else if (value instanceof CS_Object) {
				// insert a reference
				CS_Reference reference = new CS_Reference() ;
				reference.compositeReferent = (CS_Object)value ;
				reference.referent = (CS_Object)value ;
				values.add(reference) ;
			}
			else {
				values.add(value) ;
			}
		}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-11"
                              xmi:uuid="09daa29d-aaa5-42e2-a7c6-2e89f0fd84c6"
                              name="getDefaultAssociation"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-11">
                  <body>		// Computes an returns an Association with two untyped owned ends, 
		// with multiplicity [*].
		// This association can be used to type links instantiated from untyped connectors
		if (defaultAssociation == null) {
			defaultAssociation = new Association() ;
			defaultAssociation.name = "DefaultGeneratedAssociation";
			Property end1 = new Property() ;
			end1.setName("x"); ;
			end1.setLower(0);
			end1.setUpper(-1);
			end1.setIsOrdered(true);
			end1.setIsUnique(true);
			defaultAssociation.addOwnedEnd(end1);
			Property end2 = new Property() ;
			end2.setName("y");
			end2.setLower(0);
			end2.setUpper(-1);
			end2.setIsOrdered(true);
			end2.setIsUnique(true);
			defaultAssociation.addOwnedEnd(end2);
		}
		return defaultAssociation ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-12"
                              xmi:uuid="9063c0b7-4e24-4d3d-9095-84bc2bf19e88"
                              name="instantiateInterface"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-12">
                  <body>		Class_ realizingClass = this.getRealizingClass(interface_) ;
		Object_ object = locus.instantiate(realizingClass) ;
		return object ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-13"
                              xmi:uuid="e3d3dfdd-e366-4d3a-b8ff-f401ed90dac8"
                              name="getRealizingClass"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-13">
                  <body>		Class_ realizingClass = null ;
		// TODO For cached RealizingClasses, search based on InterfaceRealizations rather than name
		String realizingClassName = interface_.qualifiedName + "GeneratedRealizingClass" ;
		int i = 1 ;
		while (i &lt;= generatedRealizingClasses.size() &amp;&amp; realizingClass == null) {
			Class_ cddRealizingClass = generatedRealizingClasses.getValue(i - 1) ;
			if (cddRealizingClass.name.equals(realizingClassName)) {
				realizingClass = cddRealizingClass ;
			}
			i = i + 1 ;
		}
		if (realizingClass == null) {
			realizingClass = this.generateRealizingClass(interface_, realizingClassName) ;
			generatedRealizingClasses.addValue(realizingClass) ;
		}
		return realizingClass ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-14"
                              xmi:uuid="546d8c1c-9f7f-46a4-bb22-9402324af572"
                              name="generateRealizingClass"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-14">
                  <body>		Class_ realizingClass = new Class_() ;
		realizingClass.setName(className) ;
		InterfaceRealization realization = new InterfaceRealization() ;
		realization.contract = interface_ ;
		realization.implementingClassifier = realizingClass ;
		realizingClass.interfaceRealization.addValue(realization); 
		// TODO Deal with structural features of the interface
		// TODO Make a test case for reading/writing structural features of an interface
		return realizingClass ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-locus"
                               xmi:uuid="9cfaf8b1-cdaf-460b-ace8-ceff9d28b5b4"
                               name="locus"
                               visibility="public"
                               association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_locus_1">
                  <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-Locus"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-defaultAssociation"
                               xmi:uuid="5a4a60f2-988c-472a-b6db-7a119e6050f4"
                               name="defaultAssociation"
                               visibility="public"
                               aggregation="composite"
                               association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_association_1">
                  <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Association"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generatedRealizingClasses"
                               xmi:uuid="320ea064-201c-441d-95a0-21a60ce37428"
                               name="generatedRealizingClasses"
                               visibility="public"
                               aggregation="composite"
                               association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_class_1">
                  <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generatedRealizingClasses-lowerValue"
                              xmi:uuid="7b787298-e5fc-4789-8ba5-bc6dd5924957"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generatedRealizingClasses-upperValue"
                              xmi:uuid="123f741a-803e-4d7a-a776-02de4cef41b2"
                              value="*"/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-1"
                               xmi:uuid="f5b9b0ab-0ed0-4581-a21d-c84b4a64ccc8"
                               name="construct"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-1"/>
                  <redefinedOperation xmi:idref="PSCS_Semantics-Semantics-Actions-CS_ConstructStrategy-construct"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-construct-constructor"
                                  xmi:uuid="39a04dc9-56e3-4af0-ae05-bd2a90cb2fdd"
                                  name="constructor"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-construct-context"
                                  xmi:uuid="089ba5fb-dc84-4263-9b18-494ec7bcbe16"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-construct-result"
                                  xmi:uuid="965ef0b3-8b83-4e2b-8c7a-76d546bb2d27"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-2"
                               xmi:uuid="58db92aa-c082-4966-bf32-8ca848899728"
                               name="addStructuralFeatureValue"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-10"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-addStructuralFeatureValue-context"
                                  xmi:uuid="6ee22762-6bdf-4bae-bbe7-13a97222f20c"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-addStructuralFeatureValue-feature"
                                  xmi:uuid="0c18f5b5-87a1-41bc-8ac5-fd80a8937b79"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Property"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-addStructuralFeatureValue-value"
                                  xmi:uuid="ff56c390-a9b1-47d4-9934-bfc51daedc43"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-3"
                               xmi:uuid="53752edd-b2d5-406f-8ba9-dd5e90c7c80d"
                               name="canInstantiate"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-canInstantiate-p"
                                  xmi:uuid="576c715d-435c-437b-aa05-e077b9c3e9da"
                                  name="p"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Property"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-canInstantiate-result"
                                  xmi:uuid="3e817864-b326-467e-9d42-8efc9e3e5209"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-4"
                               xmi:uuid="77efaf01-9086-4d2e-a7f9-34c044c33189"
                               name="constructObject"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-constructObject-context"
                                  xmi:uuid="ddcb0459-0a85-45a6-9141-9347e8f80a77"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-constructObject-type"
                                  xmi:uuid="5bc747f8-b38d-4b33-9aa1-860e2219e9d2"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-constructObject-result"
                                  xmi:uuid="7eb951bd-6acc-4623-93ad-2d22b59b52d6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-5"
                               xmi:uuid="1e6d26f1-9125-4667-bfc3-cb27c62a8e36"
                               name="generateArrayPattern"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-4"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateArrayPattern-context"
                                  xmi:uuid="1dffa9b4-cee1-42a5-ad5f-f2fa691dadf7"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateArrayPattern-connector"
                                  xmi:uuid="8b5be0e1-d8eb-47f7-9705-01491b8a83d0"
                                  name="connector"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Connector"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-6"
                               xmi:uuid="5c4a3a36-b90f-4db0-8209-96401342978a"
                               name="generateStarPattern"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-5"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateStarPattern-context"
                                  xmi:uuid="bead9557-1a87-4d8a-8e0f-5a3ab23efc16"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateStarPattern-connector"
                                  xmi:uuid="e8a67780-2e17-44a9-b6ec-aad01fb9166c"
                                  name="connector"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Connector"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-7"
                               xmi:uuid="8f53513a-331b-4639-b58f-71535190e4fc"
                               name="getCardinality"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-6"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getCardinality-end"
                                  xmi:uuid="558bd479-273f-42bd-a305-bce279b5d1ed"
                                  name="end"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorEnd"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getCardinality-result"
                                  xmi:uuid="60c6a739-56bb-454e-823f-3db000155540"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-8"
                               xmi:uuid="306bcae6-6e58-4a91-b0c1-2ffd992ebc47"
                               name="getValuesFromConnectorEnd"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-7"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getValuesFromConnectorEnd-context"
                                  xmi:uuid="ecc74f06-029c-49f7-9a8f-cb285fff4813"
                                  name="context"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getValuesFromConnectorEnd-end"
                                  xmi:uuid="402344b4-2e02-4bc0-8a21-8df19f7d2a9b"
                                  name="end"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorEnd"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getValuesFromConnectorEnd-result"
                                  xmi:uuid="c99d0cb1-926d-44b5-814a-f3dab4f92b68"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getValuesFromConnectorEnd-result-lowerValue"
                                 xmi:uuid="0a7c819e-d527-43b4-a4f2-c8da74d224d9"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getValuesFromConnectorEnd-result-upperValue"
                                 xmi:uuid="a6f29ea6-c56e-43ab-a8ec-74b023e4544d"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-9"
                               xmi:uuid="0b273010-8233-4ba9-8eb0-4f493ee0054e"
                               name="isArrayPattern"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-8"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-isArrayPattern-c"
                                  xmi:uuid="9a7d862c-ce13-4703-a40f-4168905a7c0c"
                                  name="c"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Connector"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-isArrayPattern-result"
                                  xmi:uuid="c63b1674-4d90-46fb-8b93-e7a70066a6ff"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-10"
                               xmi:uuid="fbd732eb-b2d2-4d8c-a0b0-7c8ce15b86e9"
                               name="isStarPattern"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-9"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-isStarPattern-result"
                                  xmi:uuid="9c62e288-7237-4cfd-9fbd-179cfc72179e"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-isStarPattern-c"
                                  xmi:uuid="6fc2dac5-43b1-4e15-a434-5b5d28abffe6"
                                  name="c"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Connector"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-11"
                               xmi:uuid="f91c2916-0165-4889-a0db-f507f473ad10"
                               name="getDefaultAssociation"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-11"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getDefaultAssociation-result"
                                  xmi:uuid="33ebaebf-9771-486d-be38-35c3a9cb7a00"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Association"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-12"
                               xmi:uuid="231247a6-6c67-4e4c-8655-06a0a1decfaf"
                               name="instantiateInterface"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-12"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-instantiateInterface-interface"
                                  xmi:uuid="6e5a27cf-2a4b-4b62-bbc5-d7f1cf6f302c"
                                  name="interface"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-instantiateInterface-locus"
                                  xmi:uuid="0af7be1a-0413-4aae-a62a-a1c87f99dc93"
                                  name="locus"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-Locus"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-instantiateInterface-result"
                                  xmi:uuid="0f42daed-3d9b-4268-a7a7-531a61233f89"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-13"
                               xmi:uuid="f480f736-62c3-4f1b-832b-6af8708b6ccb"
                               name="getRealizingClass"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-13"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getRealizingClass-interface_"
                                  xmi:uuid="d9a0c7c2-644a-45e5-941c-9ee11bdf2965"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-getRealizingClass-result"
                                  xmi:uuid="dc44e369-5d1f-4c94-a4cf-d0d90a92d902"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedOperation-14"
                               xmi:uuid="2cd1e24b-d8a8-42ba-8cd0-f7deb0b36cb3"
                               name="generateRealizingClass"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-ownedBehavior-14"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateRealizingClass-interface_"
                                  xmi:uuid="7e8f9712-7242-47fa-88a8-ce8669fbe727"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateRealizingClass-result"
                                  xmi:uuid="117e9dc1-ec9e-4732-bb4f-7f43fea106e3"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generateRealizingClass-className"
                                  xmi:uuid="0c17e48d-df91-4cac-b9f6-8e754551e16b"
                                  name="className"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation"
                             xmi:uuid="19ea4b38-62ad-4bda-80cc-5bd44fb0d21d"
                             name="CS_AcceptCallActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedComment"
                             xmi:uuid="3f6c89c9-cf37-4307-a658-dc34f08de49b"
                             body="In the PSCS context, an accepted event occurrence might be a CS_EventOccurrence (i.e., an event occurrence that arrived through an instance of a Port). CS_AcceptCallActionActivation provides the required extension to AcceptCallActionActivation in order to deal with the acceptance of a CS_EventOccurrence.."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-generalization"
                               xmi:uuid="3ca441e0-08a0-4c25-a69f-76add273733d">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-AcceptCallActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedBehavior"
                              xmi:uuid="4ea02d64-db01-4ed4-a2fc-d589bdf931f7"
                              name="accept"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedOperation">
                  <body>// If the accepted event occurrence is a CS_EventOccurrence then the wrapped
// event occurrence is extracted. The acceptance process is the one define
// by AcceptCallActionActivation defined in fUML.

if(eventOccurrence instanceof CS_EventOccurrence){
	super.accept(((CS_EventOccurrence) eventOccurrence).wrappedEventOccurrence);
}else{
	super.accept(eventOccurrence);
}

</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedBehavior-ownedParameter"
                                  xmi:uuid="c67a3c74-7bba-4bbc-a34d-4c3a3d145640"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedOperation"
                               xmi:uuid="7b87294c-ab79-433f-b2fb-58c533673646"
                               name="accept"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptCallActionActivation-ownedOperation-ownedParameter"
                                  xmi:uuid="1931f98a-d3a5-41d1-a7ed-f5b0cb1bd916"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation"
                             xmi:uuid="638f62b5-9714-4ed3-a16e-c8400062bca7"
                             name="CS_AcceptEventActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedComment"
                             xmi:uuid="ba69ac99-5093-4ded-b6b4-de9edf263e70"
                             body="In the PSCS context, an accepted event occurrence might be a CS_EventOccurrence (i.e., an event occurrence that arrived through an instance of a Port). CS_AcceptEventActionActivation provides the required extension to AcceptEventActionActivation in order to deal with the acceptance of a CS_EventOccurrence.   "/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-generalization"
                               xmi:uuid="ef289034-2499-4396-87e8-b27fdfcbd3b3">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-AcceptEventActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedBehavior"
                              xmi:uuid="23d4c213-1671-4c1a-92bc-44bbcd5927af"
                              name="accept"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedOperation">
                  <body>	// If the accepted event occurrence is a CS_EventOccurrence then the wrapped
	// event occurrence is extracted. The acceptance process is the one define
	// by AcceptEventActionActivation defined in fUML.
	if(eventOccurrence instanceof CS_EventOccurrence){
		super.accept(((CS_EventOccurrence) eventOccurrence).wrappedEventOccurrence);
	}else{
		super.accept(eventOccurrence);
	}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedBehavior-ownedParameter"
                                  xmi:uuid="a5a79787-2503-4269-8c59-d0a7c125d25c"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedOperation"
                               xmi:uuid="59acfc65-f472-4134-b1c7-b062420f28b1"
                               name="accept"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedBehavior"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedOperation-ownedComment"
                                xmi:uuid="54225869-9e23-42b1-922e-7dda931c9ece"
                                body="If the accepted event occurrence is a CS_EventOccurrence then the wrapped event occurrence is extracted. The acceptance process is the one define by AcceptEventActionActivation defined in fUML.  "/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Actions-CS_AcceptEventActionActivation-ownedOperation-ownedParameter"
                                  xmi:uuid="489caf40-7f7b-41c2-9e9d-d1af5da391eb"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation"
                             xmi:uuid="14ebfd8a-6930-4dc0-8dbf-0362053c8ddc"
                             name="CS_SendSignalActionActivation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedComment"
                             xmi:uuid="b076b0a0-c5d4-4774-a341-5c532287b85c"
                             body="Extends semantics of fUML SendSignalActionActivation::doAction() to capture propagation of signals across ports. (Note: Addresses requirement R2 &#34;Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.&#34;)"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-generalization"
                               xmi:uuid="a40bcdb6-73a0-4178-955a-d1daeb039df2">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Actions-SendSignalActionActivation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedBehavior"
                              xmi:uuid="56b82e70-93ac-45a2-a262-751f7f7f5ed1"
                              name="doAction"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedOperation">
                  <body>		// If onPort is not specified, behaves like in fUML
		// If onPort is specified,
		// Get the value from the target pin. If the value is not a reference,
		// then do nothing.
		// Otherwise, construct a signal using the values from the argument pins
		// As compared to fUML, instead of sending directly to target reference
		// by calling operation send:
		// - if the target is to be the same as or a container of (directly or indirectly)
		// the object executing the Action, the Signal shall be related to a Reception belonging
		// to a required interface of onPort, and sendOut is called on the target reference
		// so that the signal will be sent to the environment
		// - if the target is NOT to be the same as or a container of (directly or indirectly)
		// the object executing the Action, the Signal shall be related to a Reception belonging
		// to a provided Interface of onPort, and operation sendIn is called so that the signal
		// will be sent to the internals of the target object

		SendSignalAction action = (SendSignalAction) (this.node);

		if (action.getOnPort() == null) {
			// Behaves like in fUML
			super.doAction();
		} else {
			Value target = this.takeTokens(action.getTarget()).get(0);

			if (target instanceof CS_Reference) {
				// Constructs the signal instance
				Signal signal = action.getSignal();
				SignalInstance signalInstance = new SignalInstance();
				signalInstance.type = signal;

				List&lt;Property&gt; attributes = signal.getOwnedAttributes();
				List&lt;InputPin&gt; argumentPins = action.getArguments();
				Integer i = 0;
				while (i &lt; attributes.size()) {
					Property attribute = attributes.get(i);
					InputPin argumentPin = argumentPins.get(i);
					List&lt;Value&gt; values = this.takeTokens(argumentPin);
					signalInstance.setFeatureValue(attribute, values, 0);
					i = i + 1;
				}
				// Construct the signal event occurrence
				SignalEventOccurrence signalEventOccurrence =  new SignalEventOccurrence();
				signalEventOccurrence.signalInstance = (SignalInstance) signalInstance.copy();
				CS_EventOccurrence wrappingEventOccurrence = new CS_EventOccurrence();
				wrappingEventOccurrence.wrappedEventOccurrence = signalEventOccurrence;
				// Tries to determine if the signal has to be
				// sent to the environment or to the internals of
				// target, through onPort
				CS_Reference targetReference = (CS_Reference) target;
				Object_ executionContext = this.getActivityExecution().context;
				if (executionContext == targetReference.referent || targetReference.compositeReferent.contains(executionContext)) {
					wrappingEventOccurrence.sendOutTo(targetReference, action.onPort);
				} else {
					wrappingEventOccurrence.sendInTo(targetReference, action.onPort);
				}
			}
		}
	}</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedOperation"
                               xmi:uuid="277432ce-2833-4e4d-894e-130c5d39ccb2"
                               name="doAction"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedBehavior"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Actions-CS_SendSignalActionActivation-ownedOperation-ownedComment"
                                xmi:uuid="815bca21-1eb7-4eaa-9e84-9b6d21d1cb66"
                                body="If onPort is not specified, behaves like in fUML If onPort is specified, get the value from the target pin. If the value is not a reference, then do nothing. Otherwise, construct a signal using the values from the argument pins. As compared to fUML, instead of sending directly to target reference by calling operation send: - if the target is to be the same as or a container of (directly or indirectly) the object executing the Action, the Signal shall be related to a Reception belonging to a required interface of onPort, and sendOut is called on the target reference so that the signal will be sent to the environment - if the target is NOT to be the same as or a container of (directly or indirectly) the object executing the Action, the Signal shall be related to a Reception belonging to a provided Interface of onPort, and operation sendIn is called so that the signal will be sent to the internals of the target objectinternals of the target object"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_class_1"
                             xmi:uuid="40c45ec3-f114-4c5e-8a47-0bee0b5b81df"
                             name="cS_DefaultConstructStrategy_class_1">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_class_1-cS_DefaultConstructStrategy"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-generatedRealizingClasses"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_class_1-cS_DefaultConstructStrategy"
                         xmi:uuid="493cea01-5467-4cff-983a-30f30ae279a4"
                         name="cS_DefaultConstructStrategy"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy"
                         association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_class_1"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_locus_1"
                             xmi:uuid="d8a027d2-59e4-4b17-bd3f-3084345fd1fc"
                             name="cS_DefaultConstructStrategy_locus_1">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_locus_1-cS_DefaultConstructStrategy"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-locus"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_locus_1-cS_DefaultConstructStrategy"
                         xmi:uuid="71fc38db-5e79-4161-a7a8-0f89fe32d180"
                         name="cS_DefaultConstructStrategy"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy"
                         association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_locus_1"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_association_1"
                             xmi:uuid="fb4f89e2-1e1a-4f2d-b682-2f946874c306"
                             name="cS_DefaultConstructStrategy_association_1">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_association_1-cS_DefaultConstructStrategy"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy-defaultAssociation"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_association_1-cS_DefaultConstructStrategy"
                         xmi:uuid="121f1c0e-e77a-4f04-ba73-5db557fa053d"
                         name="cS_DefaultConstructStrategy"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-Actions-CS_DefaultConstructStrategy"
                         association="PSCS_Semantics-Semantics-Actions-cS_DefaultConstructStrategy_association_1"/>
            </packagedElement>
         </packagedElement>
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-Loci"
                          xmi:uuid="f947eaf4-c449-45be-a4cc-e996df95577a"
                          name="Loci">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Loci-packageImport"
                           xmi:uuid="0b62e3c0-dcca-460c-818f-9fcc35001880"
                           importedPackage="PSCS_Semantics-Semantics-Actions"/>
            <packagedElement xmi:type="uml:Class" xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus"
                             xmi:uuid="a0597e57-905e-470f-8fea-30df7e558a98"
                             name="CS_Locus">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedComment"
                             xmi:uuid="29ebb24f-4186-42be-936b-fd3da778ac33"
                             body="Extends fUML semantics by instantiating a CS_Object in the case where type is not a Behavior. Otherwise behaves like in fUML."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-generalization"
                               xmi:uuid="47c40c0f-36d3-45e7-acbc-2c77bd94cf61">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-Locus"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedBehavior"
                              xmi:uuid="336c715f-f4e3-4e72-88be-ada5c6707a8f"
                              name="instantiate"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedOperation">
                  <body>		// Extends fUML semantics by instantiating a CS_Object
		// in the case where type is not a Behavior.
		// Otherwise behaves like in fUML

		Object_ object = null;

		if (type instanceof Behavior) {
			object = super.instantiate(type);
		} else {
			object = new CS_Object() ;
			object.types.addValue(type);
			object.createFeatureValues();
			this.add(object);
		}

		return object;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedBehavior-ownedParameter-1"
                                  xmi:uuid="0ef15c90-b18d-4ef6-b1c9-dd46267bd669"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedBehavior-ownedParameter-2"
                                  xmi:uuid="b32702e4-ffae-4597-84ef-264c1de0dbfe"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedOperation"
                               xmi:uuid="32c14940-3e48-4ad0-b2ed-f90ae7e5499b"
                               name="instantiate"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedOperation-ownedParameter-1"
                                  xmi:uuid="42918fa3-d6c5-4064-aed6-5277d4e3493a"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Locus-ownedOperation-ownedParameter-2"
                                  xmi:uuid="d98f51d2-f9ee-4910-b16f-63b6061de74b"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory"
                             xmi:uuid="feb31336-da6f-4600-97f6-cbe46e96208f"
                             name="CS_ExecutionFactory">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedComment"
                             xmi:uuid="209e781d-fff6-48e1-a6f8-d69725156677"
                             body="Extends fUML semantics in the sense that newly introduced semantic visitors are instantiated instead of fUML visitors."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-generalization"
                               xmi:uuid="7d2461c6-be7b-410d-a0d5-04ba77239d23">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-ExecutionFactory"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedBehavior"
                              xmi:uuid="9acb505d-a0ba-46fc-b1e5-3b350845653a"
                              name="instantiateVisitor"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedOperation-1">
                  <body>		// Extends fUML semantics in the sense that newly introduced 
		// semantic visitors are instantiated instead of fUML visitors

		// Extends fUML semantics in the sense that newly introduced 
		// semantic visitors are instantiated instead of fUML visitors

		SemanticVisitor visitor = null ;
		if (element instanceof ReadExtentAction) {
			visitor =new CS_ReadExtentActionActivation() ;
		}
		else if (element instanceof AddStructuralFeatureValueAction) {
			visitor = new CS_AddStructuralFeatureValueActionActivation() ;
		}
		else if (element instanceof ClearStructuralFeatureAction) {
			visitor = new CS_ClearStructuralFeatureValueActionActivation() ;
		}
		else if (element instanceof CreateLinkAction) {
			visitor = new CS_CreateLinkActionActivation() ;
		}
		else if (element instanceof CreateObjectAction) {
			visitor = new CS_CreateObjectActionActivation() ;
		}
		else if (element instanceof ReadSelfAction) {
			visitor = new CS_ReadSelfActionActivation() ;
		}
		else if (element instanceof AcceptCallAction) {
			visitor = new CS_AcceptCallActionActivation();
		}
		else if (element instanceof InstanceValue) {
			visitor = new CS_InstanceValueEvaluation() ;
		}
		else if (element instanceof AcceptEventAction) {
			visitor = new CS_AcceptEventActionActivation() ;
		}
		else if (element instanceof CallOperationAction) {
			visitor = new CS_CallOperationActionActivation() ;
		}
		else if (element instanceof SendSignalAction) {
			visitor = new CS_SendSignalActionActivation() ;
		}
		else if (element instanceof OpaqueExpression) {
			visitor = new CS_OpaqueExpressionEvaluation() ;
		}
		else if (element instanceof CallEventBehavior) {
			visitor = new CS_CallEventExecution();
		}
		else {
			visitor = super.instantiateVisitor(element) ;
		}
		return visitor ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedBehavior-ownedParameter-1"
                                  xmi:uuid="837b1000-67d4-4f75-bbf1-8b75a32144a3"
                                  name="element"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Element"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedBehavior-ownedParameter-2"
                                  xmi:uuid="e9dc0a0c-206d-4f45-92e2-d8d192b16d94"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticVisitor"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-appliedProfiles"
                               xmi:uuid="07b22e14-d6a4-4433-bd15-e79a0c43f596"
                               name="appliedProfiles"
                               visibility="public"
                               association="PSCS_Semantics-Semantics-Loci-cS_ExecutionFactory_package_1">
                  <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Package"/>
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-appliedProfiles-lowerValue"
                              xmi:uuid="bf483e8a-39c5-4a9c-b360-5c4e5511e011"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-appliedProfiles-upperValue"
                              xmi:uuid="9febf614-8019-4a09-9d5f-ea0bfd959c1d"
                              value="*"/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedOperation-1"
                               xmi:uuid="3db4de6d-5013-49e4-a40d-66401d380fbb"
                               name="instantiateVisitor"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedBehavior"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedOperation-1-ownedComment"
                                xmi:uuid="dea635f0-e075-48b1-b443-25a9c373caa9"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public instantiateVisitor (in element : Element ) : SemanticVisitor { // TODO return super.instantiateVisitor(element) ; } }"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedOperation-1-ownedParameter-1"
                                  xmi:uuid="818c9422-2e90-485d-9e15-c0507d320926"
                                  name="element"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Element"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-ownedOperation-1-ownedParameter-2"
                                  xmi:uuid="3bd27cf2-d2fb-4773-9b27-028457467d26"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticVisitor"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeClass"
                               xmi:uuid="35e8c4e4-e417-45f4-8598-68bba8842478"
                               name="getStereotypeClass"
                               visibility="public">
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeClass-profileName"
                                  xmi:uuid="97448223-8295-49ee-92a3-3dfb0779ab70"
                                  name="profileName"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeClass-stereotypeName"
                                  xmi:uuid="1c5cf13f-dd85-4515-b823-14e60f1b4b5f"
                                  name="stereotypeName"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeClass-result"
                                  xmi:uuid="ef9e5a2a-2e57-4544-a76a-3c352b53b043"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeApplication"
                               xmi:uuid="0b492f6c-377a-4bab-a972-e89983072dfd"
                               name="getStereotypeApplication"
                               visibility="public">
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeApplication-stereotype"
                                  xmi:uuid="2a9df3a3-885d-48e7-a760-50104133475f"
                                  name="stereotype"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeApplication-element"
                                  xmi:uuid="5f63bd6d-d5c4-4a9a-9b12-ec308def45bc"
                                  name="element"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Element"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-getStereotypeApplication-result"
                                  xmi:uuid="5fadee1a-2c7c-4171-a3e2-d3877ad9795c"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor"
                             xmi:uuid="5d2749f3-9f9c-4d52-bde3-690da9ee1482"
                             name="CS_Executor">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedComment"
                             xmi:uuid="3545adf9-af61-43dd-92b4-608ff5fad5fd"
                             body="fUML semantics is extended in the sense that when the instantiated object is a CS_Object, a CS_Reference is returned (instead of a Reference). [Note: this can be avoided if fUML introduces a factory for Reference]"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-generalization"
                               xmi:uuid="b1bc03b8-0c2d-4ee8-ac5a-dc05c1f1203a">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-Executor"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior"
                              xmi:uuid="2ad8f449-2e1d-4292-adf4-6e3e9edf5953"
                              name="start"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation">
                  <body>		// Instantiate the given class and start any behavior of the resulting
		// object.
		// (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.)
		// fUML semantics is extended in the sense that when the instantiated object
		// is a CS_Object, a CS_Reference is returned (instead of a Reference)

		Debug.println("[start] Starting " + type.name + "...");

		Object_ object = this.locus.instantiate(type);

		Debug.println("[start] Object = " + object);
		object.startBehavior(type, inputs);

		Reference reference ;
		if (object instanceof CS_Object) {
			reference = new CS_Reference();
			((CS_Reference)reference).compositeReferent = (CS_Object)object ;
		}
		else {
			reference = new Reference() ;
		}
		reference.referent = object;

		return reference;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior-ownedParameter-1"
                                  xmi:uuid="b56ad00e-590d-4cba-99c0-2f1b6fab5c06"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior-ownedParameter-2"
                                  xmi:uuid="e0ce1aa9-24c0-4901-81d0-b481195227fa"
                                  name="inputs"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior-ownedParameter-2-lowerValue"
                                 xmi:uuid="73b3e27c-ace4-45e8-8c8a-575eb6319712"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior-ownedParameter-2-upperValue"
                                 xmi:uuid="2dec0193-f9fb-48ce-9249-76a1d7b82b7a"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior-ownedParameter-3"
                                  xmi:uuid="1bbe56a1-4228-4242-b6b2-257420055258"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation"
                               xmi:uuid="ead5cdfd-558f-4c09-9ca1-e24c3146c3b7"
                               name="start"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation-ownedParameter-1"
                                  xmi:uuid="77498d55-0dca-4eeb-95b8-c41128bfd50b"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation-ownedParameter-2"
                                  xmi:uuid="41f74286-8e3c-494a-8a6b-a15ab6406578"
                                  name="inputs"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation-ownedParameter-2-lowerValue"
                                 xmi:uuid="aebbe376-35fa-4e06-ba64-0f57f45b3ff8"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation-ownedParameter-2-upperValue"
                                 xmi:uuid="1edd2148-d7c8-40e2-b828-987b2aa1bf1e"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Loci-CS_Executor-ownedOperation-ownedParameter-3"
                                  xmi:uuid="a6fdf816-d99a-4b6e-bf8a-5cad1e02cdc9"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-Loci-cS_ExecutionFactory_package_1"
                             xmi:uuid="e9f35850-9d46-482a-8a9c-21af746d8b5d"
                             name="cS_ExecutionFactory_package_1">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Loci-cS_ExecutionFactory_package_1-cS_ExecutionFactory"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory-appliedProfiles"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-Loci-cS_ExecutionFactory_package_1-cS_ExecutionFactory"
                         xmi:uuid="4663a5de-4759-49f7-8eba-8fe8c839b200"
                         name="cS_ExecutionFactory"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-Loci-CS_ExecutionFactory"
                         association="PSCS_Semantics-Semantics-Loci-cS_ExecutionFactory_package_1"/>
            </packagedElement>
         </packagedElement>
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-CommonBehavior"
                          xmi:uuid="e3b8ff68-22ce-4f0b-bcd6-c3b83dc03de7"
                          name="CommonBehavior">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packageImport"
                           xmi:uuid="f7acccf1-f116-435c-8a0d-80e5c68e9451"
                           importedPackage="PSCS_Semantics-Semantics-StructuredClassifiers"/>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution"
                             xmi:uuid="fe447c28-5f94-43d5-ba3a-cd32a397394a"
                             name="CS_CallEventExecution">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedComment"
                             xmi:uuid="2fe166d8-4c73-404a-9c72-9f6ff05418f1"
                             body="A CS_CallEventExecution is the Execution corresponding to the dispatching of an operation on a behavior port of an active class. When a CS_CallEventExecution is executed, it sends a CS_EventOccurrence wrapping a CallEventOccurrence. This enables the possibility to designate the CS_InteractionPoint (i.e., the manifestation of the behavior port) from which the event occurrence has arrived.  "/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-generalization"
                               xmi:uuid="212c9a42-006a-4a7d-9e44-b6f280e49bd3">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-CallEventExecution"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-1"
                              xmi:uuid="9386f315-d1d2-4c95-bb52-781d729508e6"
                              name="copy"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-1">
                  <body>// Create a new call event execution that is a copy of this execution with no
// referenced interaction point.

CS_CallEventExecution copy = (CS_CallEventExecution) super.copy();
copy.interactionPoint = null;

</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-1-ownedParameter"
                                  xmi:uuid="0731d53a-c2ca-4ae9-a059-8fa78155b3a8"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-2"
                              xmi:uuid="eec27f4f-e8a3-4cae-a3d9-06ab2ef9c5df"
                              name="createEventOccurrence"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-2">
                  <body>/ Wrap the created event occurrence within a CS_EventOccurrence which
// references the behavior port on which the call was dispatched.

CS_EventOccurrence wrappingEventOccurrence = new CS_EventOccurrence();
wrappingEventOccurrence.interactionPoint = this.interactionPoint;
wrappingEventOccurrence.wrappedEventOccurrence = super.createEventOccurrence();
return wrappingEventOccurrence;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-2-ownedParameter"
                                  xmi:uuid="1b9d25b3-233b-4adf-85fb-31dc5564545d"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-3"
                              xmi:uuid="56adcd4e-02c8-4e82-939b-801769f9c851"
                              name="new_"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-3">
                  <body>// Create a new call event execution.

return new CS_CallEventExecution();

</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-3-ownedParameter"
                                  xmi:uuid="05fb62ac-e58a-49f5-a9fd-3e55a894a3be"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-interactionPoint"
                               xmi:uuid="39c2b34d-26b3-45e7-a2ab-2f765f9ac175"
                               name="interactionPoint"
                               visibility="public"
                               type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"
                               association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-interactionPoint-lowerValue"
                              xmi:uuid="908190ad-c797-4a2f-bd0e-721429a74cba"/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-1"
                               xmi:uuid="b8c2cf88-a0d7-4ef9-bab0-bf66f657cd5d"
                               name="copy"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-1"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-1-ownedParameter"
                                  xmi:uuid="51540d66-649d-4d02-8b60-b389f38875f9"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-2"
                               xmi:uuid="ee2ed62b-4aa5-4549-a08a-49baead37e25"
                               name="createEventOccurrence"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-2-ownedParameter"
                                  xmi:uuid="73b3c696-45d7-49c0-9aa1-52cb746a7c39"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-3"
                               xmi:uuid="05ef9f2d-f729-4484-8bba-a6d9a56261ed"
                               name="new_"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-ownedOperation-3-ownedParameter"
                                  xmi:uuid="b78fde5f-2311-4ba4-ad4a-2c8a800cd1a7"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2"
                             xmi:uuid="a9320992-b15a-4727-9f89-b03707a873ef">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution-interactionPoint"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2-ownedEnd"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2-ownedEnd"
                         xmi:uuid="7fe2ef98-d3d0-4072-8803-b2f68c72ae1b"
                         name="callEventExecution"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-CommonBehavior-CS_CallEventExecution"
                         association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2-ownedEnd-lowerValue"
                              xmi:uuid="5da9784b-3c36-4a98-bb7f-779cd40b543f"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-2-ownedEnd-upperValue"
                              xmi:uuid="1c5746f4-b854-4ec6-9fa0-09157b59b320"
                              value="*"/>
               </ownedEnd>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence"
                             xmi:uuid="7e082430-ec85-45a6-b5b9-d9daa4606b72"
                             name="CS_EventOccurrence"
                             isActive="true">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedComment"
                             xmi:uuid="36d93bdd-cfc8-447f-81c0-2b7b97dfd927"
                             body="A CS_EventOccurrence is a specialization of the concept of event occurrence provided by fUML (see section 8.4.3.23 [fUML]). It represents a single occurrence of an event that was received by an object through a specific port."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-generalization"
                               xmi:uuid="054e36d3-e3a3-4944-adf6-ca3af11965a3">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-1"
                              xmi:uuid="fddd72e9-f5be-4814-9729-2aaacec79fd6"
                              name="getParameterValues"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1">
                  <body>// Return the parametric data of the referenced event occurrence

return this.wrappedEventOccurrence.getParameterValues();</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-1-ownedParameter"
                                  xmi:uuid="3149a82c-c567-47fe-8004-44b4f4b3820a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-1-ownedParameter-lowerValue"
                                 xmi:uuid="e0094fcf-69fe-4c37-b35d-255b2ac70aa9"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-1-ownedParameter-upperValue"
                                 xmi:uuid="15665624-1ed8-4add-baf1-338ce96e7aa9"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-2"
                              xmi:uuid="de03bf26-4181-443d-b6ac-2fc11807955f"
                              name="match"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-2">
                  <body>&lt;&lt;TextualRepresentation&gt;&gt; public boolean match(Trigger trigger) {
	// If the trigger references ports then to match this latter it is required that 
	// 1] the interaction point is instance of port referenced by the trigger
	// 2] the referenced event occurrence match operation returns true.
	// If the trigger does not reference ports then the behavior is the same than for fUML.

	boolean matches = false;
	if(trigger.port.size() &gt; 0){
		int i = 1;
		while(!matches &amp; i &lt;= trigger.port.size()){
			if(this.interactionPoint.definingPort==trigger.port.get(i-1)){
				matches = true;
			}
			i++;
		}
		if(matches){
			matches = this.wrappedEventOccurrence.match(trigger);
		}
	}else{
		matches = this.wrappedEventOccurrence.match(trigger);
	}
	return matches;
}
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="b4d6df9d-8afb-4c07-8a5d-f6d7c0ceb1a6"
                                  name="trigger"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Trigger"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-2-ownedParameter-2"
                                  xmi:uuid="6ab7abbc-4e68-4240-ab47-ae2c4273704a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-3"
                              xmi:uuid="7d545e26-223f-4fd6-b584-90aef9d48653"
                              name="doSend"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-3">
                  <body>// If the specified target is a CS_Reference and the propagation must be done
// to the environment, then the operation sendOut(EventOccurrence, Port) is called
// and make the propagation to continue.
// If the specified target is a CS_Reference but the propagation must be done to
// the internals then the operation sendIn(EventOccurrence, Port) is called.
// In the case were the target is not a CS_EventOccurrence then send(EventOccurence)
// is called.

if(this.target instanceof CS_Reference){
	if(this.propagationInward == true){
		((CS_Reference)this.target).sendIn(this, this.onPort);
		}else{
			((CS_Reference)this.target).sendOut(this, this.onPort);
		}
	}else{
		super.doSend();
	}
}

</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-4"
                              xmi:uuid="ee9f6a59-f7e0-483b-8e12-1b7ad0652dda"
                              name="sendInTo"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-4">
                  <body>// Propagate the sending of the event occurrence to the internals

this.onPort = port;
this.propagationInward = true;
this.sendTo(target);</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-4-ownedParameter-1"
                                  xmi:uuid="12c8716d-14bd-40af-b169-e3a189823012"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-4-ownedParameter-2"
                                  xmi:uuid="dd54491d-b462-4b5d-8508-dca27f80da84"
                                  name="target"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-5"
                              xmi:uuid="03f1f15d-fa96-4eed-93e0-2ae5d4ab76d6"
                              name="sendOutTo"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-5">
                  <body>// Propagate the sending of the event occurrence to the environment

this.onPort = port;
this.propagationInward = false;
this.sendTo(target);
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-5-ownedParameter-1"
                                  xmi:uuid="caedc325-8c4f-4bc3-95f6-6e28f05f3408"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-5-ownedParameter-2"
                                  xmi:uuid="1a85a554-e1e7-4069-a5ff-06570ae4dcdd"
                                  name="target"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-interactionPoint"
                               xmi:uuid="77852f64-9c4f-49c9-b665-688fb6dc0cb0"
                               name="interactionPoint"
                               visibility="public"
                               type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"
                               association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-interactionPoint-lowerValue"
                              xmi:uuid="eee8bfd2-068b-4610-ae4b-375b2f96c82a"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-wrappedEventOccurrence"
                               xmi:uuid="1721b869-c4c1-4136-9cba-60a7321cb64e"
                               name="wrappedEventOccurrence"
                               visibility="public"
                               association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4">
                  <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-wrappedEventOccurrence-lowerValue"
                              xmi:uuid="c4a0f7f2-0ef9-4e3c-8dcc-cfd19fc63e73"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-propagationInward"
                               xmi:uuid="5b957a2f-209b-4dd1-b4e6-e50487a7c91e"
                               name="propagationInward"
                               visibility="public">
                  <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-propagationInward-lowerValue"
                              xmi:uuid="0b6d0b48-69d6-415c-baa5-c4c9262424e1"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-onPort"
                               xmi:uuid="de63f31c-8a7f-469f-8c95-476a9e8f486a"
                               name="onPort"
                               visibility="public"
                               association="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8">
                  <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-onPort-lowerValue"
                              xmi:uuid="5d8400e4-fec4-4f60-82f2-64f240354ec5"/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1"
                               xmi:uuid="7609b707-49a6-4490-afc4-80d1d4b0b0f4"
                               name="getParameterValues"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1-ownedComment"
                                xmi:uuid="b78e3034-16b8-41e5-9941-4e0e9ae83bcd"
                                body="// Return the parametric data of the referenced event occurrence"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1-ownedParameter"
                                  xmi:uuid="6733190e-67a6-4a8a-8cca-e535de4d2404"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1-ownedParameter-lowerValue"
                                 xmi:uuid="00813e56-4b3f-4d28-ab3d-449cd13d8620"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-1-ownedParameter-upperValue"
                                 xmi:uuid="aace5a53-9a56-4584-85e9-d37b00e5af9c"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-2"
                               xmi:uuid="5e4fb2f3-cad4-4096-844f-814b57ee16b4"
                               name="match"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-2"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-2-ownedComment"
                                xmi:uuid="12953447-57af-4d37-9cd3-ef8beb733c73"
                                body="If the trigger references ports then to match this latter it is required that 1] the interaction point is instance of port referenced by the trigger 2] the referenced event occurrence match operation returns true. If the trigger does not reference ports then the behavior is the same than for fUML. fUML."/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="9b5d562b-563e-4646-9592-6e1fcc50b0f5"
                                  name="trigger"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Trigger"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="3431b1ca-8b9e-42f3-b30b-aa548bef5675"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-3"
                               xmi:uuid="31443d9d-47ef-4379-be01-8b89f8186e50"
                               name="doSend"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-3"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-4"
                               xmi:uuid="70a17432-e136-4189-8bd6-953f54c3f34c"
                               name="sendInTo"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-4"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-4-ownedParameter-1"
                                  xmi:uuid="a360c9b9-8376-4c94-8c64-8996545bc69e"
                                  name="target"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-4-ownedParameter-2"
                                  xmi:uuid="55782df1-1a83-4d6f-b350-fdb33dcd64e7"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-5"
                               xmi:uuid="8692d0db-f8f4-4b7b-bab1-6c77aac891cb"
                               name="sendOutTo"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedBehavior-5"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-5-ownedParameter-1"
                                  xmi:uuid="b8c9de76-bf2f-4a01-b15e-976bbbce577e"
                                  name="target"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-ownedOperation-5-ownedParameter-2"
                                  xmi:uuid="69f041ae-bd55-4dcb-8da5-9009b80e445f"
                                  name="port"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4"
                             xmi:uuid="5d4cf702-8858-452c-8fc8-97cf17104311">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-wrappedEventOccurrence"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4-ownedEnd"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4-ownedEnd"
                         xmi:uuid="7bcfae5b-61f3-4a6a-9f70-a0ab73e42715"
                         name="wrappingEventOccurrence"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence"
                         association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-4-ownedEnd-lowerValue"
                              xmi:uuid="89f29d16-f936-4960-9921-b1d0bf9a18c4"/>
               </ownedEnd>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5"
                             xmi:uuid="feb2c3dc-8447-46cd-bf40-e3cd0f5e6f40">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-interactionPoint"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5-ownedEnd"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5-ownedEnd"
                         xmi:uuid="d1e310d4-b734-4bf0-993c-deb087b27bfd"
                         name="eventOccurrence"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence"
                         association="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5-ownedEnd-lowerValue"
                              xmi:uuid="9d704e2e-f1e2-40b1-b6e9-35a0f2ecb4fe"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-CommonBehavior-packagedElement-5-ownedEnd-upperValue"
                              xmi:uuid="368989e1-3e02-48b0-b8b5-44cdf01216b3"
                              value="*"/>
               </ownedEnd>
            </packagedElement>
         </packagedElement>
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-Values"
                          xmi:uuid="d4ef44db-4f93-4d5a-84cd-88d06751b3d4"
                          name="Values">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Values-packageImport-1"
                           xmi:uuid="5c5f2bb1-b5a7-40b1-8a48-3526cfd7e492">
               <importedPackage href="http://www.omg.org/spec/PSCS/20180801/PSCS_Syntax.xmi#PSCS_Syntax-Syntax-Values"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Values-packageImport-2"
                           xmi:uuid="0d6e1009-bda0-4f9a-bcae-722b28812fa4">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Values-packageImport-3"
                           xmi:uuid="e99eb1d2-a4df-469c-949c-c7de36fdae1e">
               <importedPackage href="http://www.omg.org/spec/PSCS/20180801/PSCS_Syntax.xmi#PSCS_Syntax-Syntax-CommonBehavior"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Values-packageImport-4"
                           xmi:uuid="e2fed890-8286-4904-88f8-b6dd7c1f0e99">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior"/>
            </packageImport>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation"
                             xmi:uuid="1353dae9-c9d5-4f7c-b0f2-c2b9e19901cc"
                             name="CS_OpaqueExpressionEvaluation">
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-generalization"
                               xmi:uuid="5c6e2a26-b325-4a67-ac50-8ec9ca3cfc00">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Evaluation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-1"
                              xmi:uuid="52a5ef66-4a35-4ac0-96d2-cf422909dec8"
                              name="evaluate"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-1">
                  <body>		// Execute the behavior associated with the context OpaqueExpression, if any.
		// If multiple return values are computed, then return the first one.
		// If no value are computed, return null
		ValueList evaluation = this.executeExpressionBehavior() ;
		if (evaluation.size() &gt; 0) {
			return evaluation.get(0) ;
		}
		else {
			return null ;
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-1-ownedParameter"
                                  xmi:uuid="5865e1f4-f9f4-4c13-87f7-129a4dc1efd6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-1-ownedParameter-lowerValue"
                                 xmi:uuid="32e24f79-9e5d-4a33-a7ca-35d292c6dce3"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-2"
                              xmi:uuid="c77df9bc-5b49-47ee-bd05-73e24b4978e2"
                              name="executeExpressionBehavior"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-2">
                  <body>		// If a behavior is associated with the context OpaqueExpression,
		// then execute this behavior, and return computed values.
		// Otherwise, return an empty list of values.
		ValueList evaluation = new ValueList() ;
		OpaqueExpression expression = (OpaqueExpression)this.specification ;
		Behavior behavior = expression.behavior ;
		if (behavior != null) {
			ParameterValueList inputs = new ParameterValueList() ;
			ParameterValueList results = this.locus.executor.execute(behavior, null, inputs) ;
			for (int i = 0 ; i &lt; results.size() ; i++) { // results.size should be 1
				ParameterValue parameterValue = results.get(i) ;
				ValueList values = parameterValue.values ;
				for (int j = 0 ; j &lt; values.size() ; j++) {
					evaluation.add(values.get(j)) ;
				}
			}
		}
		return evaluation ;</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-1"
                               xmi:uuid="aac44a32-d7bf-4576-934a-94c027c589c5"
                               name="evaluate"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-1"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-1-ownedParameter"
                                  xmi:uuid="049dc213-8c5d-496e-a653-53ef9c33f460"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-1-ownedParameter-lowerValue"
                                 xmi:uuid="e4fd4a13-e2b5-4dc9-9048-33c883c53573"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedOperation-2"
                               xmi:uuid="3f8bff27-11d1-45a8-9dd1-39ac09efa172"
                               name="executeExpressionBehavior"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-executeExpressionBehavior-result"
                                  xmi:uuid="ba8b4d4b-4f56-4a68-82bc-7653820c8a61"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-executeExpressionBehavior-result-lowerValue"
                                 xmi:uuid="e112e607-1939-4d11-8571-780bb26178aa"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-Values-CS_OpaqueExpressionEvaluation-executeExpressionBehavior-result-upperValue"
                                 xmi:uuid="1febf798-4647-4d88-9dc0-8b7f2a2b3b90"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
         </packagedElement>
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers"
                          xmi:uuid="c47dbdd3-9e1f-4e5d-ae48-396d61e2424c"
                          name="StructuredClassifiers">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-1"
                           xmi:uuid="25056c25-4b59-4f58-ad73-d6aef12f9d98"
                           importedPackage="PSCS_Semantics-Semantics-StructuredClassifiers"/>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-2"
                           xmi:uuid="cb305c52-03b1-4761-9093-fd551d801605">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-3"
                           xmi:uuid="eade4810-eb38-477b-87d4-645739a134fc"
                           importedPackage="PSCS_Semantics-Semantics-Classification"/>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-4"
                           xmi:uuid="b1cb1d9e-d748-454b-ae1d-91b1c99a155c">
               <importedPackage href="http://www.omg.org/spec/PSCS/20180801/PSCS_Syntax.xmi#PSCS_Syntax-Syntax-SimpleClassifiers"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-5"
                           xmi:uuid="7ee8945a-1c68-4dca-8dff-0cb5a252a582">
               <importedPackage href="http://www.omg.org/spec/PSCS/20180801/PSCS_Syntax.xmi#PSCS_Syntax-Syntax-CommonStructure"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-6"
                           xmi:uuid="3eb627e1-c197-458f-b473-0be8a51a01f3"
                           visibility="private"
                           importedPackage="PSCS_Semantics-Semantics-CommonBehavior"/>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packageImport-7"
                           xmi:uuid="737a0dad-d4c0-4fc3-8967-3ab5077d93eb">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci"/>
            </packageImport>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy"
                             xmi:uuid="f882ba64-9a4d-4a43-b507-aff062b3cdc2"
                             name="CS_DispatchOperationOfInterfaceStrategy">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedComment"
                             xmi:uuid="c072dd21-d141-42ee-abd4-eae23e2653d1"
                             body="Extends fUML RedefinitionBasedDispatchStrategy to account for the fact that the invoked operation may belong to an interface, and not to one of the classifiers of the target object (NOTE: Not mandatory to have it defined as an extension of RedefinitionBasedDispatchStrategy. Could be defined as direct specialization of DispatchStrategy)"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-generalization"
                               xmi:uuid="e1b63846-be38-4373-9d0e-28cc0f6df001">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-RedefinitionBasedDispatchStrategy"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedBehavior"
                              xmi:uuid="1903167e-1ae8-4605-bbec-bea43af06aa1"
                              name="operationsMatch"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation">
                  <body>		// Override operationsMatch, in the case where baseOperation belongs 
		// to an Interface.
		// In this case, ownedOperation matches baseOperation if it has the same name and signature
		// Otherwise, behaves like fUML RedefinitionBasedDispatchStrategy
		boolean matches = true ;
		if (baseOperation.namespace instanceof Interface) {
			matches = (baseOperation.name == ownedOperation.name) ;
			matches = matches &amp;&amp; (baseOperation.ownedParameter.size() == ownedOperation.ownedParameter.size()) ;
			ParameterList ownedOperationParameters = ownedOperation.ownedParameter ;
			ParameterList baseOperationParameters = baseOperation.ownedParameter ;
			for (int i = 0 ; matches == true &amp;&amp; i &lt; ownedOperationParameters.size() ; i++) {
				Parameter ownedParameter = ownedOperationParameters.getValue(i) ;
				Parameter baseParameter = baseOperationParameters.getValue(i) ;
				matches = (ownedParameter.type == baseParameter.type) ;
				matches = matches &amp;&amp; (ownedParameter.multiplicityElement.lower == ownedParameter.multiplicityElement.lower) ;
				matches = matches &amp;&amp; (ownedParameter.multiplicityElement.upper == ownedParameter.multiplicityElement.upper) ;
				matches = matches &amp;&amp; (ownedParameter.direction == ownedParameter.direction) ;
			}
		}
		else {
			matches = super.operationsMatch(ownedOperation, baseOperation) ;
		}

		return matches ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedBehavior-ownedParameter-1"
                                  xmi:uuid="f86223ff-cc15-4067-a7cf-3f8053f063a3"
                                  name="ownedOperation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedBehavior-ownedParameter-2"
                                  xmi:uuid="de30f5af-4b34-4e80-89e8-08458d90c0f2"
                                  name="baseOperation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedBehavior-ownedParameter-3"
                                  xmi:uuid="7f2323e4-ddec-4ec9-8655-fb8628f34387"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation"
                               xmi:uuid="abcfaa84-b6ee-4231-b4e1-c18912747340"
                               name="operationsMatch"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedBehavior"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation-ownedComment"
                                xmi:uuid="87f576d1-d53f-4014-9169-bb63f3367ae9"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public operationsMatch (in ownedOperation : Operation , in baseOperation : Operation ) : Boolean { // Override operationsMatch, in the case where baseOperation belongs // to an Interface return false ; }o an Interface return false ; }&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation-ownedParameter-1"
                                  xmi:uuid="1a1e908a-4ff1-4df7-ad56-7ecc6c1ce82a"
                                  name="ownedOperation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation-ownedParameter-2"
                                  xmi:uuid="3cd0813f-452c-4aa3-8850-c7aa159b4120"
                                  name="baseOperation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DispatchOperationOfInterfaceStrategy-ownedOperation-ownedParameter-3"
                                  xmi:uuid="1f18a490-4b2d-4184-ba77-a7272df7884a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy"
                             xmi:uuid="190374d0-f422-48de-885a-f63ab045b6fd"
                             name="CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedComment"
                             xmi:uuid="9b57ecb6-dd8f-4236-8f26-7b78c1e22091"
                             body="This class provides a realization of semantic strategy CS_StructuralFeatureOfInterfaceAccessStrategy. This realization makes the hypothesis that, for a given behaviored classifier to actually realize an interface, it shall have structural features which exactly match structural features of the realized interface. Realizing features shall have same name, type and multiplicity as structural features of the interface."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-generalization"
                               xmi:uuid="a228156f-de3a-4bb7-93f9-6f86cb09780f"
                               general="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy"/>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-1"
                              xmi:uuid="fd240a7b-b096-43c2-af9b-492bbff0b55f"
                              name="read"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1">
                  <body>		// returns the a copy of the first feature value of cs_Object where the name of the corresponding feature
		// matches the name of the feature given as a parameter
		// Otherwise, returns an empty feature value
		FeatureValueList featureValues = cs_Object.featureValues ;
		FeatureValue matchingFeatureValue = null ;
		for (int i = 0 ; i &lt; featureValues.size() &amp;&amp; matchingFeatureValue == null ; i++) {
			FeatureValue featureValue = featureValues.getValue(i) ; 
			if (featureValue.feature.name.equals(feature.name)) {
				matchingFeatureValue = featureValue ;
			}
		}
		if (matchingFeatureValue != null) {
			matchingFeatureValue = matchingFeatureValue.copy() ;
			matchingFeatureValue.feature = feature ;
		}
		else {
			matchingFeatureValue = new FeatureValue() ;
			matchingFeatureValue.feature = feature ;
			matchingFeatureValue.values = new ValueList() ;
			matchingFeatureValue.position = 0 ;
		}
		
		return matchingFeatureValue ;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-1-ownedParameter-1"
                                  xmi:uuid="8b5627cc-207a-41b5-99c8-117559befcf4"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-1-ownedParameter-2"
                                  xmi:uuid="d70ddef6-8d18-443e-aca9-86587abf8ded"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-1-ownedParameter-3"
                                  xmi:uuid="bca3b097-6ee6-4341-81c5-44be5c04282b"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-FeatureValue"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2"
                              xmi:uuid="fc5db6b6-32b2-44e4-a518-4c6e92dde788"
                              name="write"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2">
                  <body>	// Retrieves the first feature value of cs_Object where the name of the corresponding feature
	// matches the name of the feature given as a parameter
	// Then updates the values for this feature value
	FeatureValueList featureValues = cs_Object.featureValues ;
	FeatureValue matchingFeatureValue = null ;
	for (int i = 0 ; i &lt; featureValues.size() &amp;&amp; matchingFeatureValue == null ; i++) {
		FeatureValue featureValue = featureValues.getValue(i) ; 
		if (featureValue.feature.name.equals(feature.name)) {
			matchingFeatureValue = featureValue ;
		}
	}
	if (matchingFeatureValue != null) {
		cs_Object.setFeatureValue(matchingFeatureValue.feature, values, position) ;
	}
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="164654a8-7dcd-4d84-a8e2-0c54c6adf83c"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-2"
                                  xmi:uuid="dd45dbfc-1449-4fec-9b59-f0df010117ad"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-3"
                                  xmi:uuid="cb8c10f6-4a5a-459f-a6b8-5652a8e81e6e"
                                  name="values"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-3-lowerValue"
                                 xmi:uuid="cee0933b-1e45-4f7a-8c70-b4cf86488fab"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-3-upperValue"
                                 xmi:uuid="f6ce84f1-d07a-45de-b23a-c5e2cbb5b4d8"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2-ownedParameter-4"
                                  xmi:uuid="6d15f0bb-5785-42c0-bcd8-af09f09751c0"
                                  name="position"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1"
                               xmi:uuid="02f87d0e-a1fa-4ee2-9538-07ba65c0c0ca"
                               name="read"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-1"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1-ownedParameter-1"
                                  xmi:uuid="ac5cf3e2-1772-4641-8cb7-693bd2e9234c"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1-ownedParameter-2"
                                  xmi:uuid="f6b9f01b-68e2-4e59-a615-303ebdb6dd7b"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1-ownedParameter-3"
                                  xmi:uuid="930f21f3-fa3a-4a4f-a30f-953c4a3be89e"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-FeatureValue"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2"
                               xmi:uuid="25374d41-efa1-4e90-b17f-af4128fe3816"
                               name="write"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="caf9ef2e-24fd-48f0-9b65-78734fee0228"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="d2c70077-1f8f-40d1-bfd5-7b82e8c008be"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-3"
                                  xmi:uuid="a812c2e3-f4bd-4c27-80bf-dd1c52f59224"
                                  name="values"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-3-lowerValue"
                                 xmi:uuid="063fe2ab-e876-44fb-ae9b-f738271521b6"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-3-upperValue"
                                 xmi:uuid="9cdede86-37ba-4c44-9e62-e93cc9cfc727"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_NameBased_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-2-ownedParameter-4"
                                  xmi:uuid="3162cc40-0b31-47dc-92b8-b65217d891e0"
                                  name="position"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy"
                             xmi:uuid="b486ee00-af01-429b-ab9c-c641d618f363"
                             name="CS_StructuralFeatureOfInterfaceAccessStrategy"
                             isAbstract="true">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-ownedComment"
                             xmi:uuid="0053ae92-c1f8-492b-a7df-65c61ea6c41e"
                             body="This abstract strategy class enables to deal with realization of structural features by a behaviored classifier, in the case where these structural features belong to an interface realized by this classifier. Concrete realization of this abstract class shall specify behaviors for abstract operations read and write."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-generalization"
                               xmi:uuid="7fdb08f9-bde2-49f9-8d5e-15d0b43b926a">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticStrategy"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior"
                              xmi:uuid="3319eb73-3adb-4cc9-b4df-14508051fbb5"
                              name="getName"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1">
                  <body>		// StructuralFeatureAccessStrategy are always named "structuralFeature"
		return "structuralFeature";</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-ownedOperation-1"
                               xmi:uuid="5156f4bb-d690-4364-b98b-e870265150da"
                               name="getName"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-getName-result"
                                  xmi:uuid="2cceff36-f4d8-4180-99cc-aa5ec01270de"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-read"
                               xmi:uuid="cd64a76c-1919-40c2-9f3d-0f455e59b647"
                               name="read"
                               visibility="public"
                               isAbstract="true">
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-read-ownedComment"
                                xmi:uuid="cce2184f-6f0f-4069-8fc6-3d575418dab2"
                                body="// This abstract operation is intented to return the feature value for the given structural feature, // in the context of the given object, in the case where the feature belongs to an Interfacece"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-read-cs_Object"
                                  xmi:uuid="b7a0f196-d866-4bc4-9fe2-9bc52d912223"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-read-feature"
                                  xmi:uuid="f0babcf4-c9dd-43cf-8328-5c2b4820dc6d"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-read-result"
                                  xmi:uuid="1e7a7bba-8db4-4c08-9dc0-b4897be76647"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-FeatureValue"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write"
                               xmi:uuid="4c9e2843-805f-40a0-ba33-286a02cabeea"
                               name="write"
                               visibility="public"
                               isAbstract="true">
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-ownedComment"
                                xmi:uuid="22acb4a7-3903-4074-947b-63a304360499"
                                body="// This abstract operation is intented to capture the way the given structural feature is set, // in the context of the given object, in the case where the feature belongs to an Interfacee"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-cs_Object"
                                  xmi:uuid="5de81ec7-b24e-4c41-9c28-3fe635e296d9"
                                  name="cs_Object"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-feature"
                                  xmi:uuid="8413b2a5-8dc0-4026-b3fb-c929e0429b0a"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-values"
                                  xmi:uuid="09981b5b-daea-4cad-984f-e7b87d93bb7d"
                                  name="values"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-values-lowerValue"
                                 xmi:uuid="8a2e8374-180b-4d9c-9d8c-e4801da174ca"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-values-upperValue"
                                 xmi:uuid="cfe3c72f-f26f-4b09-8f3c-90069ead5745"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_StructuralFeatureOfInterfaceAccessStrategy-write-position"
                                  xmi:uuid="3fa23ff0-0353-4cd2-8be7-0fc1240040b5"
                                  name="position"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_definingPort"
                             xmi:uuid="8f46bfdc-8f18-4fc8-9da2-7336555f00fa"
                             name="A_interactionPoint_definingPort">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_definingPort-interactionPoint"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-definingPort"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_definingPort-interactionPoint"
                         xmi:uuid="a0fd07d6-78ff-4d27-b98d-e4aead39f6e5"
                         name="interactionPoint"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"
                         association="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_definingPort"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"
                             xmi:uuid="f812e19c-1111-437f-bd10-541992591568"
                             name="CS_Object">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedComment-1"
                             xmi:uuid="a7c896a2-f34b-4b5f-bbe7-ece6699b658b"
                             body="CS_Object extends fUML Object with specific operations for managing propagations of requests through ports, from the environment to the internals of this object, or from the objet to its environment. NOTE, this class addresses the following requirements: - R4: If connectors are attached to both the port when used on a property within the internal structure of a classifier and the port on the container of an internal structure, the instance of the owning classifier will forward any requests arriving at this port along the link specified by those connectors. - R5: If there is a connector attached to only one side of a port, any requests arriving at this port will terminante at this port [Non-behavior port] - R6: For a behavior port, the instance of the owning classifier will handle requests arriving at this port (as specified in the behavior of the classifier), if this classifier has any behavior. - R7: If there is no behavior defined for this classifier, any communication arriving at a behavior port is lost. - R8: If several connectors are attached on one side of a port, then any request arriving at this port on a link derived from a connector on the other side of the port will be fowarded on links corresponding to these connectors. It is a semantic variation point whether these requests will be forwarded on all links, or on only one of those links.links."/>
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedComment-2"
                             xmi:uuid="dfb0449b-2a2c-44b1-876b-6ce89ee93fcd"
                             body="// Imports import CompositeStructuresSyntaxAndSemantics.Semantics.CommonBehaviors.Communications.CS_DispatchOperationOfInterfaceStrategy; import CompositeStructuresSyntaxAndSemantics.Semantics.CommonBehaviors.Communications.CS_StructuralFeatureOfInterfaceAccessStrategy; import CompositeStructuresSyntaxAndSemantics.Semantics.CommonBehaviors.Communications.CS_CallEventExecution; import CompositeStructuresSyntaxAndSemantics.Semantics.CompositeStructures.InvocationActions.CS_RequestPropagationStrategy; import CompositeStructuresSyntaxAndSemantics.Syntax.Classes.Dependencies.NamedElement; import CompositeStructuresSyntaxAndSemantics.Syntax.Classes.Interfaces.Operation; import CompositeStructuresSyntaxAndSemantics.Syntax.CommonBehaviors.Communications.Interface; import CompositeStructuresSyntaxAndSemantics.Syntax.CommonBehaviors.Communications.InterfaceList; import CompositeStructuresSyntaxAndSemantics.Syntax.Components.BasicComponents.ConnectorKind; import CompositeStructuresSyntaxAndSemantics.Syntax.CompositeStructures.InternalStructures.ClassifierList; import CompositeStructuresSyntaxAndSemantics.Syntax.CompositeStructures.Ports.Port; import CompositeStructuresSyntaxAndSemantics.Syntax.CompositeStructures.StructuredClasses.Class_; import fUML.Semantics.Actions.BasicActions.CallOperationActionActivation; import fUML.Semantics.Actions.BasicActions.SendSignalActionActivation; import fUML.Semantics.Classes.Kernel.ExtensionalValue; import fUML.Semantics.Classes.Kernel.ExtensionalValueList; import fUML.Semantics.Classes.Kernel.FeatureValue; import fUML.Semantics.Classes.Kernel.FeatureValueList; import fUML.Semantics.Classes.Kernel.Object_; import fUML.Semantics.Classes.Kernel.Reference; import fUML.Semantics.Classes.Kernel.ReferenceList; import fUML.Semantics.Classes.Kernel.Value; import fUML.Semantics.Classes.Kernel.ValueList; import fUML.Semantics.CommonBehaviors.BasicBehaviors.Execution; import fUML.Semantics.CommonBehaviors.Communications.EventOccurrence; import fUML.Semantics.Loci.LociL1.ChoiceStrategy; import fUML.Syntax.Classes.Kernel.NamedElementList; import fUML.Syntax.Classes.Kernel.StructuralFeature; import fUML.Syntax.Classes.Kernel.Type; import fUML.Syntax.Classes.Kernel.TypeList; import fUML.Syntax.CommonBehaviors.Communications.Reception; ors.Communications.Reception;  &#xA;"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-generalization"
                               xmi:uuid="ba4131b4-7ad8-4951-9ac7-97ab6d4002df">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-1"
                              xmi:uuid="2fd1467f-4ce8-4065-b4d6-38d8d3b4a8a0"
                              name="dispatchIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1">
                  <body>		// If the interaction point refers to a behavior port, does nothing [for the moment... ?], 
		// since the only kind of event supported in fUML is SignalEvent
		// If it does not refer to a behavior port, select appropriate delegation links 
		// from interactionPoint, and propagates the operation call through 
		// these links
		Execution execution = null ;
		if (interactionPoint.definingPort.isBehavior) {
			execution = this.dispatch(operation);
			if(execution instanceof CS_CallEventExecution){
				((CS_CallEventExecution)execution).interactionPoint = interactionPoint;
			}
		}
		else {
			boolean operationIsProvided = true ;
			ReferenceList potentialTargets = new ReferenceList() ;
			CS_LinkList cddLinks = this.getLinks(interactionPoint) ;
			Integer linkIndex = 1 ;
			while (linkIndex &lt;= cddLinks.size()) {
				ReferenceList validTargets = this.selectTargetsForDispatching(cddLinks.getValue(linkIndex - 1), 
						interactionPoint, ConnectorKind.delegation, operation, operationIsProvided) ;
				Integer targetIndex = 1 ;
				while(targetIndex &lt;= validTargets.size()) {
					potentialTargets.add(validTargets.getValue(targetIndex-1)) ;
					targetIndex = targetIndex + 1 ;
				}
				linkIndex = linkIndex + 1 ;
			}
			// If potentialTargets is empty, no delegation target have been found, 
			// and the operation call will be lost
			if (! (potentialTargets.size()==0)) {
				CS_RequestPropagationStrategy strategy =
						(CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
				// Choose one target non-deterministically
				ReferenceList targets = strategy.select(potentialTargets, new CallOperationActionActivation()) ;
				Reference target = targets.getValue(0) ;
				execution = target.dispatch(operation) ;
			}
		}
		return execution ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-1-ownedParameter-1"
                                  xmi:uuid="19657df2-e9cc-4c26-9a40-bee0ba375260"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-1-ownedParameter-2"
                                  xmi:uuid="db1f9d3b-ff85-4620-8487-8f57af5aff18"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-1-ownedParameter-3"
                                  xmi:uuid="a17e929e-bedc-46d8-b40e-cbc985a0a13b"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-2"
                              xmi:uuid="ff46f7a5-f770-4904-a5c2-bc5fdf1fd46d"
                              name="sendIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-2">
                  <body>		// 1] If the interaction is a behavior port then sends the event occurrence to the // target object using operation send.
		// 2] If this is not a behavior port, select appropriate delegation targets from // interactionPoint and propagates the event occurrence to these targets

		if (interactionPoint.definingPort.isBehavior) {
			this.send(eventOccurrence);
		}
		else {
			boolean receptionIsProvided = true ;
			ReferenceList potentialTargets = new ReferenceList() ;
			CS_LinkList cddLinks = this.getLinks(interactionPoint) ;
			Integer linkIndex = 1 ;
			while (linkIndex &lt;= cddLinks.size()) {
				ReferenceList validTargets = this.selectTargetsForSending(cddLinks.getValue(linkIndex - 1), 
						interactionPoint, ConnectorKind.delegation, receptionIsProvided) ;
				Integer targetIndex = 1 ;
				while(targetIndex &lt;= validTargets.size()) {
					potentialTargets.add(validTargets.getValue(targetIndex-1)) ;
					targetIndex = targetIndex + 1 ;
				}
				linkIndex = linkIndex + 1 ;
			}
			// If potential targets is empty, no delegation target has been found,
			// and the event occurrence is lost
			// Otherwise, do the following concurrently
			for (int i = 0; i &lt; potentialTargets.size(); i++) {
				Reference target = potentialTargets.getValue(i);
				target.send(eventOccurrence);
			}
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="1ff13e62-2d41-4202-9529-17baafeb2197"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-2-ownedParameter-2"
                                  xmi:uuid="f362204f-7d84-4e2b-93ea-a89b59c47669"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3"
                              xmi:uuid="06285f0c-ceb7-4b07-9d68-1c502dfacc57"
                              name="selectTargetsForSending"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3">
                  <body>		// From the given link, signal and interaction point, retrieves potential targets (i.e. end values of link) 
		// through which request can be propagated
		// These targets are attached to interaction point through the given link, and respect the following rules:
		// - if toInternal is true, connectorKind must be Delegation, the given link has to target the internals of this CS_Object
		// - if toInternal is false, the given link has to target the environment of this CS_Object.
		ReferenceList potentialTargets = new ReferenceList() ;
		if (toInternal &amp;&amp; connectorKind == ConnectorKind.delegation) {
			if (this.getLinkKind(link, interactionPoint) == CS_LinkKind.ToInternal) {
				Integer i = 1 ;
				while(i &lt;= link.getFeatureValues().size()) {
					ValueList values = link.getFeatureValues().get(i-1).values ;
					if (!values.isEmpty()) {
						Integer j = 1 ;
						while (j &lt;= values.size()) {
							Reference cddTarget = (Reference)values.get(j-1) ;
							if (!cddTarget.equals(interactionPoint)) {
								potentialTargets.add(cddTarget) ;
							}
							j = j + 1 ;
						}
					}
					i = i + 1 ;
				}
			}
		}
		else { // to Environment
			if (this.getLinkKind(link, interactionPoint) == CS_LinkKind.ToEnvironment) {
				Integer i = 1 ;
				while(i &lt;= link.getFeatureValues().size()) {
					ValueList values = link.getFeatureValues().get(i-1).values ;
					if (!values.isEmpty() &amp;&amp; values.get(0) instanceof Reference) {
						Reference cddTarget = (Reference)values.get(0) ;
						if (connectorKind == ConnectorKind.assembly) {
							if (! (cddTarget instanceof CS_InteractionPoint)) { // This is an assembly link
								potentialTargets.add(cddTarget) ;
							}
							else {
								// This is an assembly if the interaction point is not a feature value 
								// for a container of this CS_Object
								CS_ObjectList directContainers = this.getDirectContainers() ;
								boolean isAssembly = true ;
								Integer j = 1 ;
								if (! this.hasValueForAFeature(cddTarget)) {
									while (isAssembly &amp;&amp; j &lt;= directContainers.size()) {
										CS_Object container = directContainers.get(j - 1) ;
										if (container.hasValueForAFeature(cddTarget)) {
											isAssembly = false ;
										}
										j++ ;
									}
								}
								else {
									isAssembly = false ;
								}
								if (isAssembly) {
									potentialTargets.add(cddTarget) ;
								}
							}
						}
						else { // delegation
							// This is a delegation if the target is an interaction point
							// and if this interaction is a feature value for a container of this CS_Object
							if (cddTarget instanceof CS_InteractionPoint) {
								CS_ObjectList directContainers = this.getDirectContainers() ;
								boolean isDelegation = false ;
								Integer j = 1 ;
								while (!isDelegation &amp;&amp; j &lt;= directContainers.size()) {
									CS_Object container = directContainers.get(j - 1) ;
									if (container.hasValueForAFeature(cddTarget)) {
										isDelegation = true ;
									}
									j++ ;
								}
								if (isDelegation) {
									potentialTargets.add(cddTarget) ;
								}
							}
						}
					}
					i = i + 1 ;
				}
			}
		} 
		return potentialTargets ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-1"
                                  xmi:uuid="adbb2dcd-2d4a-49d2-8f68-29f44c96c5d5"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-2"
                                  xmi:uuid="b4c5fe83-4621-44fc-a7aa-fb96e3477968"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-3"
                                  xmi:uuid="a0f57efa-a639-4b76-9e77-7ef301043eda"
                                  name="connectorKind"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorKind"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-selectTargetsForSending-isProvided"
                                  xmi:uuid="fb802afd-351a-4a4f-a4d3-63be0687bd04"
                                  name="isProvided"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-5"
                                  xmi:uuid="93900987-07de-44ab-ac31-6920074326df"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-5-lowerValue"
                                 xmi:uuid="da8d39c8-840a-4c4e-bb06-fb53ad8549d6"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3-ownedParameter-5-upperValue"
                                 xmi:uuid="c4ddb0e4-1fc6-40aa-ac75-b3593c993e2a"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4"
                              xmi:uuid="8f9cfa78-ddb1-4cea-b100-d83b2ffd11a8"
                              name="selectTargetsForDispatching"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4">
                  <body>		// From the given link, operation and interaction point, retrieves potential targets (i.e. end values of link) 
		// through which request can be propagated
		// These targets are attached to interaction point through the given link, and respect the following rules:
		// - if toInternal is true, connectorKind must be Delegation, the given link has to target the internals of this CS_Object, 
		// and a valid target must provide the Operation 
		// - if toInternal is false, the given link has to target the environment of this CS_Object.
		//		- if connectorKind is assembly, a valid target has to provide the operation
		// 		- if connectorKind is delegation, a valid target has to require the operation
		ReferenceList potentialTargets = new ReferenceList() ;
		if (toInternal &amp;&amp; connectorKind == ConnectorKind.delegation) {
			if (this.getLinkKind(link, interactionPoint) == CS_LinkKind.ToInternal) {
				Integer i = 1 ;
				while(i &lt;= link.getFeatureValues().size()) {
					ValueList values = link.getFeatureValues().get(i-1).values ;
					if (!values.isEmpty() &amp;&amp; values.get(0) instanceof Reference) {
						Reference cddTarget = (Reference)values.get(0) ;
						if (cddTarget != interactionPoint &amp;&amp; this.isOperationProvided(cddTarget, operation)) {
							potentialTargets.add(cddTarget) ;
						}
					}
					i = i + 1 ;
				}
			}
		}
		else { // to environment
			if (this.getLinkKind(link, interactionPoint) == CS_LinkKind.ToEnvironment) {
				Integer i = 1 ;
				while(i &lt;= link.getFeatureValues().size()) {
					ValueList values = link.getFeatureValues().get(i-1).values ;
					if (!values.isEmpty() &amp;&amp; values.get(0) instanceof Reference) {
						Reference cddTarget = (Reference)values.get(0) ;
						if (connectorKind == ConnectorKind.assembly) {
							if (! (cddTarget instanceof CS_InteractionPoint)) { // This is an assembly link
								if (this.isOperationProvided(cddTarget, operation)) {
									potentialTargets.add(cddTarget) ;
								}
							}
							else {
								// This is an assembly if the interaction point is not a feature value 
								// for a container of this CS_Object
								CS_ObjectList directContainers = this.getDirectContainers() ;
								boolean isAssembly = true ;
								Integer j = 1 ;
								if (! this.hasValueForAFeature(cddTarget)) {
									while (isAssembly &amp;&amp; j &lt;= directContainers.size()) {
										CS_Object container = directContainers.get(j - 1) ;
										if (container.hasValueForAFeature(cddTarget)) {
											isAssembly = false ;
										}
										j++ ;
									}
								}
								else {
									isAssembly = false ;
								}
								if (isAssembly) {
									if (this.isOperationProvided(cddTarget, operation)) {
										potentialTargets.add(cddTarget) ;
									}
								}
							}
						}
						else { // delegation
							// This is a delegation if the target is an interaction point
							// and if this interaction is a feature value for a container of this CS_Object
							if (cddTarget instanceof CS_InteractionPoint) {
								CS_ObjectList directContainers = this.getDirectContainers() ;
								boolean isDelegation = false ;
								Integer j = 1 ;
								while (!isDelegation &amp;&amp; j &lt;= directContainers.size()) {
									CS_Object container = directContainers.get(j - 1) ;
									if (container.hasValueForAFeature(cddTarget)) {
										isDelegation = true ;
									}
									j++ ;
								}
								if (isDelegation) {
									if (this.isOperationRequired(cddTarget, operation)) {
										potentialTargets.add(cddTarget) ;
									}
								}
							}
						}
					}
					i = i + 1 ;
				}
			}
		}
		return potentialTargets ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-1"
                                  xmi:uuid="bcf1f08e-0498-473c-9552-6cd3d7c36481"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-2"
                                  xmi:uuid="b6efe4fe-eaa7-43b4-a78a-434c896f63b9"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-3"
                                  xmi:uuid="d5b032a2-9516-4c44-bd3b-37afdfc8c2b9"
                                  name="connectorKind"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorKind"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-4"
                                  xmi:uuid="7802bcfb-b617-45a9-9020-7c1da96b18c2"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-selectTargetsForDispatching-isProvided"
                                  xmi:uuid="a1c18037-8aa9-4586-8486-55cc7b6c8c52"
                                  name="isProvided"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-6"
                                  xmi:uuid="46c9ac29-133a-45b0-acdd-c406569c6be4"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-6-lowerValue"
                                 xmi:uuid="fde8f791-2778-4924-9fc4-5edbab238f6e"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4-ownedParameter-6-upperValue"
                                 xmi:uuid="fe6be232-865b-45ad-b1c2-7d04082666ac"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-5"
                              xmi:uuid="99845b7a-13d8-4268-919b-bbf6a36938df"
                              name="sendOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-5">
                  <body>		// Select appropriate delegation links from interactionPoint, 
		// and propagates the event occurrence through these links
		// Appropriate links are links which target elements
		// in the environment of this CS_Object.
		// These can be delegation links (i.e, the targeted elements must
		// require a reception for the signal) or assembly links (i.e., the target elements
		// must provide a reception for the signal)

		boolean receptionIsNotProvided = false ; // i.e. it is required
		ReferenceList allPotentialTargets = new ReferenceList() ;
		ReferenceList targetsForSendingIn = new ReferenceList() ;
		ReferenceList targetsForSendingOut = new ReferenceList() ;

		CS_LinkList cddLinks = this.getLinks(interactionPoint) ;
		Integer linkIndex = 1 ;
		while (linkIndex &lt;= cddLinks.size()) {
			ReferenceList validAssemblyTargets = this.selectTargetsForSending(cddLinks.getValue(linkIndex - 1), 
					interactionPoint, ConnectorKind.assembly, receptionIsNotProvided) ;
			Integer targetIndex = 1 ;
			while(targetIndex &lt;= validAssemblyTargets.size()) {
				allPotentialTargets.addValue(validAssemblyTargets.getValue(targetIndex-1)) ;
				targetsForSendingIn.addValue(validAssemblyTargets.getValue(targetIndex-1)) ;
				targetIndex = targetIndex + 1 ;
			}
			ReferenceList validDelegationTargets = this.selectTargetsForSending(cddLinks.getValue(linkIndex - 1), 
					interactionPoint, ConnectorKind.delegation, receptionIsNotProvided) ;
			targetIndex = 1 ;
			while(targetIndex &lt;= validDelegationTargets.size()) {
				allPotentialTargets.addValue(validDelegationTargets.getValue(targetIndex-1)) ;
				targetsForSendingOut.addValue(validDelegationTargets.getValue(targetIndex-1)) ;
				targetIndex = targetIndex + 1 ;
			}
			linkIndex = linkIndex + 1 ;
		}

		CS_RequestPropagationStrategy strategy = (CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
		ReferenceList selectedTargets = strategy.select(allPotentialTargets, new SendSignalActionActivation()) ;

		for (int j = 0 ; j &lt; selectedTargets.size() ; j++) {
			Reference target = selectedTargets.getValue(j) ;
			for (int k = 0 ; k &lt; targetsForSendingIn.size() ; k++) {
				Reference cddTarget = targetsForSendingIn.getValue(k) ;
				if (cddTarget == target) {
					target.send(eventOccurrence) ;
				}
			}
			for (int k = 0 ; k &lt; targetsForSendingOut.size() ; k++) {
				// The target must be an interaction point
				// i.e. a delegation connector for a required reception can only target a port
				CS_InteractionPoint cddTarget = (CS_InteractionPoint)targetsForSendingOut.getValue(k) ;
				if (cddTarget == target) {
					CS_Reference owner = cddTarget.owner ;
					owner.sendOut(eventOccurrence, cddTarget) ;
				}
			}
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-5-ownedParameter-1"
                                  xmi:uuid="d1c87f9a-c8bf-4b5a-a63f-0623b5814d67"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-5-ownedParameter-2"
                                  xmi:uuid="33d74226-d720-4f15-ac1c-44a24d14f03a"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-6"
                              xmi:uuid="f7183bb9-0c64-40ee-9552-f9ac66571b39"
                              name="dispatchOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6">
                  <body>		// Select appropriate delegation links from interactionPoint, 
		// and propagates the operation call through these links
		// Appropriate links are either links which target elements
		// in the environment of this CS_Object.
		// These can be delegation links (i.e, the targeted elements must
		// require the operation) or assembly links (i.e., the target elements
		// must provide the operation)


		Execution execution = null ;

		boolean operationIsNotProvided = false ; // i.e. it is required
		ReferenceList allPotentialTargets = new ReferenceList() ;
		ReferenceList targetsForDispatchingIn = new ReferenceList() ;
		ReferenceList targetsForDispatchingOut = new ReferenceList() ;

		CS_LinkList cddLinks = this.getLinks(interactionPoint) ;
		Integer linkIndex = 1 ;
		while (linkIndex &lt;= cddLinks.size()) {
			ReferenceList validAssemblyTargets = this.selectTargetsForDispatching(cddLinks.getValue(linkIndex - 1), 
					interactionPoint, ConnectorKind.assembly, operation, operationIsNotProvided) ;
			Integer targetIndex = 1 ;
			while(targetIndex &lt;= validAssemblyTargets.size()) {
				allPotentialTargets.addValue(validAssemblyTargets.getValue(targetIndex-1)) ;
				targetsForDispatchingIn.addValue(validAssemblyTargets.getValue(targetIndex-1)) ;
				targetIndex = targetIndex + 1 ;
			}
			ReferenceList validDelegationTargets = this.selectTargetsForDispatching(cddLinks.getValue(linkIndex - 1), 
					interactionPoint, ConnectorKind.delegation, operation, operationIsNotProvided) ;
			targetIndex = 1 ;
			while(targetIndex &lt;= validDelegationTargets.size()) {
				allPotentialTargets.addValue(validDelegationTargets.getValue(targetIndex-1)) ;
				targetsForDispatchingOut.addValue(validDelegationTargets.getValue(targetIndex-1)) ;
				targetIndex = targetIndex + 1 ;
			}
			linkIndex = linkIndex + 1 ;
		}

		CS_RequestPropagationStrategy strategy = (CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
		ReferenceList selectedTargets = strategy.select(allPotentialTargets, new SendSignalActionActivation()) ;

		for (int j = 0 ; j &lt; selectedTargets.size() ; j++) {
			Reference target = selectedTargets.getValue(j) ;
			for (int k = 0 ; k &lt; targetsForDispatchingIn.size() &amp;&amp; execution == null ; k++) {
				Reference cddTarget = targetsForDispatchingIn.getValue(k) ;
				if (cddTarget == target) {
					execution = target.dispatch(operation) ;
				}
			}
			for (int k = 0 ; k &lt; targetsForDispatchingOut.size() &amp;&amp; execution == null ; k++) {
				// The target must be an interaction point
				// i.e. a delegation connector for a required operation can only target a port
				CS_InteractionPoint cddTarget = (CS_InteractionPoint)targetsForDispatchingOut.getValue(k) ;
				if (cddTarget == target) {
					CS_Reference owner = cddTarget.owner ;
					execution = owner.dispatchOut(operation, cddTarget) ;
				}
			}
		}
		return execution ;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-6-ownedParameter-1"
                                  xmi:uuid="0e226d56-4ef2-4e5a-9fcb-fae1ca8f5440"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-6-ownedParameter-2"
                                  xmi:uuid="d7b1319d-37a5-41a8-9302-3606b1e77eba"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-6-ownedParameter-3"
                                  xmi:uuid="7a2506b3-b7ae-4710-b137-9c43e60f1d35"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-7"
                              xmi:uuid="8f323d00-9138-4ce3-af8c-1f6752e4abb1"
                              name="getFeatureValue"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-7">
                  <body>		// In the case where the feature belongs to an Interface,
		// fUML semantics is extended in the sense that reading is 
		// delegated to a CS_StructuralFeatureOfInterfaceAccessStrategy
		if (feature.namespace instanceof Interface) {
			CS_StructuralFeatureOfInterfaceAccessStrategy readStrategy = 
					(CS_StructuralFeatureOfInterfaceAccessStrategy)this.locus.factory.getStrategy("structuralFeature") ;
			return readStrategy.read(this, feature) ;
		}
		else {
			return super.getFeatureValue(feature);
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-7-ownedParameter-1"
                                  xmi:uuid="7778933d-1cac-43ce-9a14-5bbe3ae50255"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-7-ownedParameter-2"
                                  xmi:uuid="3fcd0d95-7c71-4039-83fa-0c99f9233efd"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-FeatureValue"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8"
                              xmi:uuid="9892f197-8521-4da7-8790-b8cfaff899a9"
                              name="setFeatureValue"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8">
                  <body>		// In the case where the feature belongs to an Interface,
		// fUML semantics is extended in the sense that writing is 
		// delegated to a CS_StructuralFeatureOfInterfaceAccessStrategy
		if (feature.namespace instanceof Interface) {
			CS_StructuralFeatureOfInterfaceAccessStrategy writeStrategy = 
					(CS_StructuralFeatureOfInterfaceAccessStrategy)this.locus.factory.getStrategy("structuralFeature") ;
			writeStrategy.write(this, feature, values, position) ;
		}
		else {
			super.setFeatureValue(feature, values, position);
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8-ownedParameter-1"
                                  xmi:uuid="76560e4d-622e-4ce2-97f4-7d01867b00b2"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8-ownedParameter-2"
                                  xmi:uuid="872b4a53-46b2-4a71-8c58-4b4ad0234b5f"
                                  name="values"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8-ownedParameter-2-lowerValue"
                                 xmi:uuid="06d89937-dba5-448b-8117-5d2551040f91"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8-ownedParameter-2-upperValue"
                                 xmi:uuid="97dfa286-1994-4183-b805-b1cdadbbbf4e"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8-ownedParameter-3"
                                  xmi:uuid="dba5036d-8fa0-4517-b06d-bb06dbf65b2a"
                                  name="position"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-9"
                              xmi:uuid="e93c3db7-da98-4eca-9ae4-70b7e8ee2f94"
                              name="contains"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-9">
                  <body>		// Determines if the object given as a parameter is directly
		// or indirectly contained by this CS_Object
		boolean objectIsContained = this.directlyContains(object) ;
		// if object is not directly contained, restart the research
		// recursively on the objects owned by this CS_Object
		for (int i = 0 ; i &lt; this.featureValues.size() &amp;&amp; !objectIsContained ; i++) {
			FeatureValue featureValue = this.featureValues.getValue(i) ;
			ValueList values = featureValue.values ;
			for (int j = 0 ; j &lt; values.size() &amp;&amp; !objectIsContained ; j++) {
				Value value = values.getValue(j) ;
				if (value instanceof CS_Object) {
					objectIsContained = ((CS_Object)value).contains(object) ;
				}
				else if (value instanceof CS_Reference) {
					CS_Object referent = ((CS_Reference)value).compositeReferent ;
					objectIsContained = referent.contains(object) ;
				}
			}
		}
		return objectIsContained;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-9-ownedParameter-1"
                                  xmi:uuid="2f652eca-c705-4a3f-a5fc-90f617ff52d3"
                                  name="object"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-9-ownedParameter-2"
                                  xmi:uuid="0ab1502f-a312-413d-ba57-263fe19cc207"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-10"
                              xmi:uuid="6692e3e2-a4fb-455e-bd71-2bbace04ca60"
                              name="directlyContains"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-10">
                  <body>		// Determines if the object given as a parameter is directly
		// contained by this CS_Object
		boolean objectIsContained = false ;
		for (int i = 0 ; i &lt; this.featureValues.size() &amp;&amp; !objectIsContained ; i++) {
			FeatureValue featureValue = this.featureValues.getValue(i) ;
			ValueList values = featureValue.values ;
			for (int j = 0 ; j &lt; values.size() &amp;&amp; !objectIsContained ; j++) {
				Value value = values.getValue(j) ;
				if (value == object) {
					objectIsContained = true ;
				}
				else if (value instanceof CS_Reference) {
					objectIsContained = (((CS_Reference)value).referent == object) ;
				}
			}
		}
		return objectIsContained;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-10-ownedParameter-1"
                                  xmi:uuid="38bda0f5-0bd9-4368-962c-d4e7126d2969"
                                  name="object"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-10-ownedParameter-2"
                                  xmi:uuid="c2f9c364-d24d-4e9b-8d07-442118f4bd42"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-11"
                              xmi:uuid="4a380f9d-67b5-4407-81f0-a2458d8771f2"
                              name="getDirectContainers"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-11">
                  <body>		// Retrieves all the extensional values at this locus which are direct
		// containers for this CS_Object
		// An extensional value is a direct container for an object if:
		// - it is a CS_Object
		// - it directly contains this object (i.e. CS_Object.directlyContains(Object)==true)
		CS_ObjectList containers = new CS_ObjectList() ;
		for (int i = 0 ; i &lt; this.locus.extensionalValues.size() ; i++) {
			ExtensionalValue extensionalValue = this.locus.extensionalValues.getValue(i) ;
			if (extensionalValue != this &amp;&amp; extensionalValue instanceof CS_Object) {
				CS_Object cddContainer = (CS_Object)extensionalValue ;
				if (cddContainer.directlyContains(this)) {
					containers.add(cddContainer) ;
				}
			}
		}
		return containers ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-11-ownedParameter"
                                  xmi:uuid="497a2bbb-0d87-43c2-aa02-2dec8b7c5180"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-11-ownedParameter-lowerValue"
                                 xmi:uuid="4816b9e9-0596-4dcb-8fb0-6d837a71e0cb"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-11-ownedParameter-upperValue"
                                 xmi:uuid="2c85cbd7-dd6b-4e8c-9151-9a17d9d6a4cf"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-12"
                              xmi:uuid="5d18edc9-9303-43a6-97d0-909a4fe3e192"
                              name="isOperationProvided"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-12">
                  <body>		// Determines if the given reference provides the operation
		// If the reference is an interaction point, it provides the operation if this operation
		// is a member of one of its provided interfaces
		// If the reference is NOT an interactionPoint, it provides this operation if this operation is
		// an operation of one of its type, or one of its type provides a realization for this operation (in the case
		// where the namespace of this Operation is an interface)
		boolean isProvided = false ;
		if (reference instanceof CS_InteractionPoint) {
			if (operation.owner instanceof Interface) {
				// We have to look in provided interfaces of the port if 
				// they define directly or indirectly the Operation
				Integer interfaceIndex = 1 ;
				// Iterates on provided interfaces of the port
				InterfaceList providedInterfaces = ((CS_InteractionPoint)reference).definingPort.provided() ;
				while (interfaceIndex &lt;= providedInterfaces.size() &amp;&amp; !isProvided) {
					Interface interface_ = providedInterfaces.getValue(interfaceIndex-1) ;
					// Iterates on members of the current Interface
					Integer memberIndex = 1 ;
					while (memberIndex &lt;= interface_.member.size() &amp;&amp; !isProvided) {
						NamedElement cddOperation = interface_.member.getValue(memberIndex-1) ;
						if (cddOperation instanceof Operation) {
							isProvided = operation == cddOperation ;
						}
						memberIndex = memberIndex + 1 ;
					}
					interfaceIndex = interfaceIndex + 1 ;
				}
			}
		}
		else {
			// We have to look if one of the Classifiers typing this reference 
			// directly or indirectly provides this operation
			ClassifierList types = reference.getTypes() ;
			Integer typeIndex = 1 ;
			while (typeIndex &lt;= types.size() &amp;&amp; !isProvided) {
				if (types.getValue(typeIndex - 1) instanceof Class_) {
					Integer memberIndex = 1 ;
					NamedElementList members = ((Class_)types.getValue(typeIndex - 1)).member ; 
					while (memberIndex &lt;= members.size() &amp;&amp; !isProvided) {
						NamedElement cddOperation = members.getValue(memberIndex-1) ;
						if (cddOperation instanceof Operation) {
							CS_DispatchOperationOfInterfaceStrategy strategy = new CS_DispatchOperationOfInterfaceStrategy() ;
							isProvided = strategy.operationsMatch((Operation)cddOperation, operation) ;
						}
						memberIndex = memberIndex + 1 ;
					}
				}
				typeIndex = typeIndex + 1 ;
			}
		}
		return isProvided ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-12-ownedParameter-1"
                                  xmi:uuid="b59ad380-8686-4160-a062-72d78a6ff2c0"
                                  name="reference"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-12-ownedParameter-2"
                                  xmi:uuid="fc067242-2d9f-4c87-a28e-8de47d92168b"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-12-ownedParameter-3"
                                  xmi:uuid="9a055d14-c3a9-465e-b5da-5ecb16a3b45f"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-13"
                              xmi:uuid="0d34df67-e9ed-4611-8528-cc5143037c59"
                              name="isOperationRequired"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-13">
                  <body>		// Determines if the given reference requires the operation
		// If the reference is an interaction point, it requires the operation if this operation
		// is a member of one of its required interfaces
		// If the reference is not a interaction point, it cannot require an operation
		boolean matches = false ;
		if (reference instanceof CS_InteractionPoint) {
			Integer interfaceIndex = 1 ;
			// Iterates on provided interfaces of the port
			InterfaceList requiredInterfaces = ((CS_InteractionPoint)reference).definingPort.required() ;
			while (interfaceIndex &lt;= requiredInterfaces.size() &amp;&amp; !matches) {
				Interface interface_ = requiredInterfaces.getValue(interfaceIndex-1) ;
				// Iterates on members of the current Interface
				Integer memberIndex = 1 ;
				while (memberIndex &lt;= interface_.member.size() &amp;&amp; !matches) {
					NamedElement cddOperation = interface_.member.getValue(memberIndex-1) ;
					if (cddOperation instanceof Operation) {
						matches = operation == cddOperation ;
					}
					memberIndex = memberIndex + 1 ;
				}
				interfaceIndex = interfaceIndex + 1 ;
			}
		}
		return matches ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-13-ownedParameter-1"
                                  xmi:uuid="f3be86e6-52b0-4f01-a887-22d9facac65d"
                                  name="reference"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-13-ownedParameter-2"
                                  xmi:uuid="de59875f-e76e-4eac-8e8b-7f2b18cee144"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-13-ownedParameter-3"
                                  xmi:uuid="af36c7e3-a57a-4487-8076-3737bc5d81de"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-14"
                              xmi:uuid="001f8318-a47c-4abd-bfab-f3e00eca2f3f"
                              name="getLinkKind"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-14">
                  <body>		// If the given interaction point belongs to the given object, and if the given interaction point is used as an end of the link, 
		// then the links targets the environment of the object (enumeration literal ToEnvironment) if all the feature values of the link 
		// (but one for the interaction point) refer to values which are not themselves values for features of the interaction point. 
		// If all the feature values of the link refer to values which are themselves values for features of the interaction point, 
		// the link targets the internals of the object (enumeration literal ToInternal). Otherwise, the link has no particular meaning 
		// in the context defined by the object and the interaction point (enumeration literal None).
		if (! link.hasValueForAFeature(interactionPoint)) {
			return CS_LinkKind.None ;
		}
		CS_LinkKind kind = CS_LinkKind.ToInternal ;
		FeatureValueList featureValues = link.getFeatureValues() ;
		Integer i = 1 ;
		while (i &lt;= featureValues.size() &amp;&amp; kind != CS_LinkKind.None) {
			FeatureValue value = featureValues.getValue(i-1) ;
			if (value.values.isEmpty()) {
				kind = CS_LinkKind.None ;
			}
			else {
				Value v = value.values.getValue(0) ;
				boolean vIsAValueForAFeatureOfContext = false ;
				if (v.equals(interactionPoint)) {
					vIsAValueForAFeatureOfContext = true ;
				}
				else if (v instanceof CS_InteractionPoint) {
					v = ((CS_InteractionPoint)v).owner ;
					vIsAValueForAFeatureOfContext = this.hasValueForAFeature(v) ;
				}
				else {
					vIsAValueForAFeatureOfContext = this.hasValueForAFeature(v) ;
				}
				if (!vIsAValueForAFeatureOfContext) {
					kind = CS_LinkKind.ToEnvironment ;
				}
			}
			i = i + 1 ;
		}
		return kind ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-14-ownedParameter-1"
                                  xmi:uuid="92777883-f112-4651-bf42-f505451f20ca"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-14-ownedParameter-2"
                                  xmi:uuid="95f21b94-bb97-455a-94fb-fec64a9c7b01"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-14-ownedParameter-3"
                                  xmi:uuid="57e378cc-bc56-4c48-9e9c-c096fd1cd19e"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15"
                              xmi:uuid="e229dcf4-dc41-425c-a8c0-2b686986667c"
                              name="getLinks"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15">
                  <body>		// Get all links (available at the locus of this object) where the given interaction point is used as a feature value
		// (i.e. the interaction is an end such links)
		ExtensionalValueList extensionalValues = this.locus.extensionalValues ;
		Integer i = 1 ;
		CS_LinkList connectorInstances = new CS_LinkList() ;
		while (i &lt;= extensionalValues.size()) {
			ExtensionalValue value = extensionalValues.getValue(i-1) ;
			if (value instanceof CS_Link) {
				CS_Link link = (CS_Link)value ;
				if (this.getLinkKind(link, interactionPoint) != CS_LinkKind.None) {
					connectorInstances.addValue(link) ;
				}
			}
			i = i + 1 ;
		}
		return connectorInstances ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15-ownedParameter-1"
                                  xmi:uuid="8c007bb3-46a2-4d5b-8147-a7b37911a2ff"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15-ownedParameter-2"
                                  xmi:uuid="74f80950-2674-42c9-bc5a-bb3ead03042b"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15-ownedParameter-2-lowerValue"
                                 xmi:uuid="d36c9d80-ccb8-47b1-b0a5-0525a20ef4a7"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15-ownedParameter-2-upperValue"
                                 xmi:uuid="a530a650-b962-4361-9157-e7d835ab3523"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-16"
                              xmi:uuid="942b92f2-45bf-4c85-bbaf-08014100f254"
                              name="hasValueForAFeature"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-16">
                  <body>		// Returns true if the given value object is used as a value for a feature value of this object
		FeatureValueList allFeatureValues = this.getFeatureValues() ;
		Integer i = 1 ;
		boolean isAValue = false ;
		while (i &lt;= allFeatureValues.size() &amp;&amp; !isAValue) {
			FeatureValue featureValue = allFeatureValues.getValue(i-1);
			if (!featureValue.values.isEmpty()) {
				ValueList valuesForCurrentFeature = featureValue.values ;
				Integer j = 1 ;
				while (j &lt;= valuesForCurrentFeature.size() &amp;&amp; !isAValue) {
					isAValue = featureValue.values.getValue(j-1).equals(value) ;
					j = j + 1 ;
				}
			}
			i = i + 1 ;
		}
		return isAValue ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-16-ownedParameter-1"
                                  xmi:uuid="620bd397-3882-4a46-ac47-7f538b327139"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-16-ownedParameter-2"
                                  xmi:uuid="f5f3e4b2-242d-44de-8d53-e96de8cb8bed"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-17"
                              xmi:uuid="ad2adb80-668d-4c91-b973-4248f98cccf4"
                              name="sendOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-17">
                  <body>		// Select a CS_InteractionPoint value playing onPort,
		// and send the event occurrence to this interaction point
		FeatureValue featureValue = this.getFeatureValue(onPort) ;
		ValueList values = featureValue.values ;
		ReferenceList potentialTargets = new ReferenceList() ;
		for (int i = 0 ; i &lt; values.size() ; i++) {
			potentialTargets.addValue((Reference)values.getValue(i)) ;
		}
		CS_RequestPropagationStrategy strategy = 
				(CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
		ReferenceList targets = strategy.select(potentialTargets, new SendSignalActionActivation()) ;
		for (int i = 0 ; i &lt; targets.size() ; i++) {
			CS_InteractionPoint target = (CS_InteractionPoint)targets.getValue(i) ;
			this.sendOut(eventOccurrence, target) ;
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-17-ownedParameter-1"
                                  xmi:uuid="8a8b98dc-e0a4-4ee4-aed0-c537508c9d53"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-17-ownedParameter-2"
                                  xmi:uuid="01075104-5778-4221-9fdf-23e56581cf84"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-18"
                              xmi:uuid="8aa095d4-acef-4834-8477-1be20ea675b5"
                              name="dispatchOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-18">
                  <body>		// Select a CS_InteractionPoint value playing onPort,
		// and dispatches the operation to this interaction point
		Execution execution = null ;
		FeatureValue featureValue = this.getFeatureValue(onPort) ;
		ValueList values = featureValue.values ;
		ReferenceList potentialTargets = new ReferenceList() ;
		for (int i = 0 ; i &lt; values.size() ; i++) {
			potentialTargets.addValue((Reference)values.getValue(i)) ;
		}
		CS_RequestPropagationStrategy strategy = 
				(CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
		ReferenceList targets = strategy.select(potentialTargets, new CallOperationActionActivation()) ;
		// if targets is empty, no dispatch target has been found,
		// and the operation call is lost
		if (targets.size() &gt;= 1) {
			CS_InteractionPoint target = (CS_InteractionPoint)targets.getValue(0) ;
			execution = this.dispatchOut(operation, target) ;
		}
		return execution ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-18-ownedParameter-1"
                                  xmi:uuid="e7d53b97-2c68-4e30-9105-002eff5078fc"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-18-ownedParameter-2"
                                  xmi:uuid="0d209735-b03a-4cc7-be62-457ac7caf3a3"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-18-ownedParameter-3"
                                  xmi:uuid="c0f04bd3-52de-4cf2-a521-218db46d3c95"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-19"
                              xmi:uuid="869c4ec6-fe97-40ee-80cf-4fc3acc40f1e"
                              name="dispatchIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-19">
                  <body>		// delegates dispatching to composite referent
		// Select a CS_InteractionPoint value playing onPort,
		// and dispatches the operation call to this interaction point
		FeatureValue featureValue = this.getFeatureValue(onPort) ;
		ValueList values = featureValue.values ;
		Integer choice = ((ChoiceStrategy) this.locus.factory
				.getStrategy("choice"))
				.choose(featureValue.values.size()) - 1;
		CS_InteractionPoint interactionPoint = (CS_InteractionPoint)values.getValue(choice) ;
		return interactionPoint.dispatch(operation) ;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-19-ownedParameter-1"
                                  xmi:uuid="18ede7a7-7cdf-45c7-84ea-f37647a4685b"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-19-ownedParameter-2"
                                  xmi:uuid="60842c6e-3f7e-448f-894d-0defc87de306"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-19-ownedParameter-3"
                                  xmi:uuid="38679b5d-867d-46d3-b19d-ca41e5df39de"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-20"
                              xmi:uuid="522defd7-30eb-418f-94ea-cbed39122dd7"
                              name="sendIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-20">
                  <body>		// Select a Reference value playing onPort,
		// and send the event occurrence to this interaction point
		FeatureValue featureValue = this.getFeatureValue(onPort) ;
		ValueList values = featureValue.values ;
		ReferenceList potentialTargets = new ReferenceList() ;
		for (int i = 0 ; i &lt; values.size() ; i++) {
			potentialTargets.addValue((Reference)values.getValue(i)) ;
		}
		CS_RequestPropagationStrategy strategy = 
				(CS_RequestPropagationStrategy)this.locus.factory.getStrategy("requestPropagation") ;
		ReferenceList targets = strategy.select(potentialTargets, new SendSignalActionActivation()) ;
		for (int i = 0 ; i &lt; targets.size() ; i++) {
			Reference target = targets.getValue(i) ;
			target.send(eventOccurrence);
		}</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-20-ownedParameter-1"
                                  xmi:uuid="c353394e-498e-4d67-88f4-88eb120a32aa"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-20-ownedParameter-2"
                                  xmi:uuid="5fa84750-74c2-4bd7-9bbe-b3c444586210"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-21"
                              xmi:uuid="12ab05a5-a435-42cf-8bfa-673c16a8402f"
                              name="checkAllParents"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-21">
                  <body>// If the given classifier is not an Interface, behaves like in fUML.
// Otherwise, check if the given type (or one of its direct or indirect ancestors)
// has an InterfaceRealization relationships with the given classifier.

boolean matched = false;
if (!(classifier instanceof Interface)) {
	matched = super.checkAllParents(type, classifier);
} else if (!(type instanceof Class)) {
	matched = false;
} else if (this.realizesInterface((Class) type, (Interface) classifier)) {
	matched = true;
} else {
	ClassifierListdirectParents = type.general;
	int i = 1;
	while (!matched &amp; i &lt;= directParents.size()) {
		Classifier directParent = directParents.getValue(i - 1);
		matched = this.checkAllParents(directParent, classifier);
		i = i + 1;
	}
}
return matched;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-21-ownedParameter-1"
                                  xmi:uuid="9cd49d33-7ffa-4b70-8e3c-d44f055a97aa"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-21-ownedParameter-2"
                                  xmi:uuid="801879e1-5fda-44b8-a28d-f5bc8ccb40c5"
                                  name="ReturnResult"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-21-ownedParameter-3"
                                  xmi:uuid="b7b1cc4c-ea12-484b-99f1-9e463666c277"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-22"
                              xmi:uuid="08c1af79-780d-41f6-a96d-d615e70dcbaa"
                              name="isDescendant"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-22">
                  <body>// Checks if the given contract is a descendant of the given interface_

boolean matched = false;
ClassifierList descendants = contract.general;
int i = 1;
while (i &lt;= descendants.size() &amp; !matched) {
if (descendants.getValue(i - 1) instanceof Interface) {
		Interface descendant = (Interface) descendants.getValue(i - 1);
		if (descendant == interface_) {
			matched = true;
		} else {
			matched = this.isDescendant(descendant, interface_);
		}
	}
	i = i + 1;
}
return matched;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-22-ownedParameter-1"
                                  xmi:uuid="ebc389b6-0c3a-4616-a228-5a2fd375228b"
                                  name="contact"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-22-ownedParameter-2"
                                  xmi:uuid="d812bd83-32ba-4342-acb3-e8fe48798590"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-22-ownedParameter-3"
                                  xmi:uuid="2e064591-a332-4f8c-b0ce-d34b68d9b2c6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-23"
                              xmi:uuid="8d0393ce-2a97-4b6d-bf97-f71e00f0de07"
                              name="realizesInterface"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-23">
                  <body>// Checks if the given type has an InterfaceRealization relationship
// with the given interface or a descendant of the interface.

InterfaceRealizationList realizations = type.interfaceRealization;
boolean realized = false;
int i = 1;
while (i &lt;= realizations.size() &amp; !realized) {
	InterfaceRealization realization = realizations.getValue(i - 1);
	Interface contract = realization.contract;
	if (contract == interface_) {
		realized = true;
	} else if (this.isDescendant(contract, interface_)) {
		realized = true;
	}
	i = i + 1;
}
return realized;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-23-ownedParameter-1"
                                  xmi:uuid="8f1d2c5e-62c1-4eb0-a0e7-af0701810440"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-23-ownedParameter-2"
                                  xmi:uuid="608e65c2-9f2d-4c3b-967b-7afe2c70fec3"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-23-ownedParameter-3"
                                  xmi:uuid="817e8c0a-b4d9-4720-b85e-bf8222bacfb4"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1"
                               xmi:uuid="189a5e29-fde5-4c6d-81c0-b067b09dd2e7"
                               name="dispatchIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1-ownedComment"
                                xmi:uuid="fb730efe-9188-431d-ac74-8f94f310b8d2"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public dispatchIn (in operation : Operation, in interactionPoint : InteractionPoint) : Execution { // If the interaction is a behavior port, does nothing [for the moment... ?], // since the only kind of event supported in fUML is SignalEvent // If this is not a behavior port, select appropriate delegation links // from interactionPoint, and propagates the operation call through // these links Execution execution = null ; if (interactionPoint.definingPort.isBehavior) { // Do nothing } else { ReferenceList targets = this.selectTargetsForDispatching(operation, interactionPoint) ; // If targets is empty, no delegation target have been found, // and the operation call will be lost if (! (targets.size()==0)) { // Choose one target non-deterministically Integer index = ((ChoiceStrategy)this.locus.factory.getStrategy(&#34;choice&#34;)) .choose(targets.size()) ; Reference target = targets.getValue(index - 1) ; execution = target.dispatch(operation) ; } } return execution ; } Reference target = targets.getValue(index - 1) ; execution = target.dispatch(operation) ; } } return execution ; }execution ;&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1-ownedParameter-1"
                                  xmi:uuid="d0a0b705-1150-43ab-82e9-0b20e6e70ef7"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1-ownedParameter-2"
                                  xmi:uuid="abbf1508-36aa-4f73-af95-8c66661e4213"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-1-ownedParameter-3"
                                  xmi:uuid="379ac342-dfc0-4b66-9739-95b05139fd69"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-2"
                               xmi:uuid="d620f820-2c8e-4f24-8c4f-ab3846f33de0"
                               name="sendIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-2"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-2-ownedComment"
                                xmi:uuid="a375b2d0-fe51-4fdd-96a2-ed7bbc6e735a"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public void sendIn(EventOccurrence eventOccurrence, CS_InteractionPoint interactionPoint) { // 1] If the interaction is a behavior port then sends the event occurrence to the // target object using operation send. // 2] If this is not a behavior port, select appropriate delegation targets from // interactionPoint and propagates the event occurrence to these targets if (interactionPoint.definingPort.isBehavior) { this.send(eventOccurrence); } else { boolean receptionIsProvided = true ; ReferenceList potentialTargets = new ReferenceList() ; CS_LinkList cddLinks = this.getLinks(interactionPoint) ; Integer linkIndex = 1 ; while (linkIndex &lt;= cddLinks.size()) { ReferenceList validTargets = this.selectTargetsForSending(cddLinks.getValue(linkIndex - 1), interactionPoint, ConnectorKind.delegation, receptionIsProvided) ; Integer targetIndex = 1 ; while(targetIndex &lt;= validTargets.size()) { potentialTargets.add(validTargets.getValue(targetIndex-1)) ; targetIndex = targetIndex + 1 ; } linkIndex = linkIndex + 1 ; } // If potential targets is empty, no delegation target has been found, // and the event occurrence is lost // Otherwise, do the following concurrently for (int i = 0; i &lt; potentialTargets.size(); i++) { Reference target = potentialTargets.getValue(i); target.send(eventOccurrence); } } }tentialTargets.size(); i++) { Reference target = potentialTargets.getValue(i); target.send(eventOccurrence); } } }ce);&#xA;&#xA;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;}&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="0e7383a7-cc47-463a-b104-f582900efee8"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="bb7738da-02a2-4ae0-8ea9-8eb98040d908"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3"
                               xmi:uuid="6b05f48c-76d0-4a2d-b92e-1776a55023a1"
                               name="selectTargetsForSending"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-3"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedComment"
                                xmi:uuid="ba5765ca-9bc7-4eca-9244-cf18de13461f"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public selectTargetsForSending (in signalInstance : SignalInstance, in interactionPoint : InteractionPoint) : Reference[*] { // From the given signalInstance and interactionPoint, // retrieves potential connectors through which request can be delegated // These connectors are delegation connectors attached to // Port interactionPoint.definingPort, and whose target provide a // reception for Signal signalInstance.type ConnectorList connectors = this.selectConnectorsForSending(signalInstance.type, interactionPoint.definingPort) ; // Select links owned by the context object for which the // definingConnector is included in the list of matching connectors. Integer i = 1 ; ConnectorInstanceList connectorInstances = new ConnectorInstanceList() ; while (i &lt;= connectors.size()) { Integer j = 1 ; Connector connector = connectors.getValue(i-1) ; while (j &lt;= this.ownedConnectorInstances.size()) { ConnectorInstance connectorInstance = this.ownedConnectorInstances.getValue(j-1) ; if (connectorInstance.definingConnector == connector) { connectorInstances.addValue(connectorInstance) ; } j=j+1 ; } i = i+1 ; } // For each matching link, retrieves the end value opposite // to interactionPoint. // If this value is a reference (which means that it is possible to send it // a signal), it is added in the list of potential targets. ReferenceList targets = new ReferenceList() ; i = 1 ; while (i &lt;= connectorInstances.size()) { ConnectorInstance link = connectorInstances.getValue(i-1) ; Association association = link.type ; Property oppositeEnd = association.memberEnd.getValue(0); if (oppositeEnd == interactionPoint.definingPort) { oppositeEnd = association.memberEnd.getValue(1); } Value value = link.getFeatureValue(oppositeEnd).values.getValue(0) ; if (value instanceof Reference) { targets.addValue((Reference)value) ; } i = i + 1; } // if targets is empty, no matching targets have been found, // and the signal instance will be lost return targets ; }(1); } Value value = link.getFeatureValue(oppositeEnd).values.getValue(0) ; if (value instanceof Reference) { targets.addValue((Reference)value) ; } i = i + 1; } // if targets is empty, no matching targets have been found, // and the signal instance will be lost return targets ; }ll be lost&#xA;&#xA;&#x9;return targets ;&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-1"
                                  xmi:uuid="3d57beea-6793-443b-88cc-586eae3ce57b"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-2"
                                  xmi:uuid="67bf2798-14c9-47f4-9c9a-92190abf43f3"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-3"
                                  xmi:uuid="cadb20f9-72ba-426d-aa9c-154a08fb62b0"
                                  name="connectorKind"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorKind"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-selectTargetsForSending-toInternal"
                                  xmi:uuid="e93e637e-1e0c-45ba-a2bf-e6b239d40c7d"
                                  name="toInternal"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-5"
                                  xmi:uuid="056a3e32-4335-4e0f-aceb-015b43ca38b8"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-5-lowerValue"
                                 xmi:uuid="2ebea6cc-539b-4f47-9950-c98956124afe"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-3-ownedParameter-5-upperValue"
                                 xmi:uuid="6170ebfe-0f5c-4e7e-bf91-a13223ec4b21"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4"
                               xmi:uuid="4dbd1a23-a924-4ea7-b693-c5fe1d13c41c"
                               name="selectTargetsForDispatching"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-4"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedComment"
                                xmi:uuid="ff3df04d-07e7-47ea-80b2-7b8c663ef2bb"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public selectTargetsForDispatching (in operation : Operation, in interactionPoint : InteractionPoint) : Reference [*] { // From the given operation and interactionPoint, retrieves potential // connectors through which request can be delegated // These connectors are delegation connectors attached to Port // interactionPoint.definingPort, // and whose target provides or realize operation ConnectorList connectors = this.selectConnectorsForDispatching(operation, interactionPoint.definingPort) ; // Select links owned by the context object for which the // definingConnector is included in the list of matching connectors. Integer i = 1 ; ConnectorInstanceList connectorInstances = new ConnectorInstanceList() ; while (i &lt;= connectors.size()) { Integer j = 1 ; Connector connector = connectors.getValue(i-1) ; while (j &lt;= this.ownedConnectorInstances.size()) { ConnectorInstance connectorInstance = this.ownedConnectorInstances.getValue(j-1) ; if (connectorInstance.definingConnector == connector) { connectorInstances.addValue(connectorInstance) ; } j=j+1 ; } i = i+1 ; } // For each matching link, retrieves the end value opposite // to interactionPoint. // If this value is a reference (which means that it is possible to dispatch // operation to it), it is added in the list of potential targets. ReferenceList targets = new ReferenceList() ; i = 1 ; while (i &lt;= connectorInstances.size()) { ConnectorInstance link = connectorInstances.getValue(i-1) ; Association association = link.type ; Property oppositeEnd = association.memberEnd.getValue(0); if (oppositeEnd == interactionPoint.definingPort) { oppositeEnd = association.memberEnd.getValue(1); } Value value = link.getFeatureValue(oppositeEnd).values.getValue(0) ; if (value instanceof Reference) { targets.addValue((Reference)value) ; } i = i + 1; } // if targets is empty, no matching targets have been found, // and the operation call will be lost return targets ; }alue(1); } Value value = link.getFeatureValue(oppositeEnd).values.getValue(0) ; if (value instanceof Reference) { targets.addValue((Reference)value) ; } i = i + 1; } // if targets is empty, no matching targets have been found, // and the operation call will be lost return targets ; }ll be lost&#xA;&#xA;&#x9;return targets ;&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-1"
                                  xmi:uuid="b97bad66-fe3d-40ee-a4a2-c9a009d3c114"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-2"
                                  xmi:uuid="36de1b98-893d-4128-99e3-3f0d6678eaa9"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-3"
                                  xmi:uuid="20873d9d-cb37-435f-aef5-147ae98bfbf7"
                                  name="connectorKind"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#ConnectorKind"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-4"
                                  xmi:uuid="f1cb0737-2f57-463a-b419-0d17ede90e4b"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-selectTargetsForDispatching-toInternal"
                                  xmi:uuid="58ea701d-9f5d-4629-bf3f-a1af2bca8efe"
                                  name="toInternal"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-6"
                                  xmi:uuid="b9d7bde2-64a5-4304-a948-f8a56b3c8644"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-6-lowerValue"
                                 xmi:uuid="f30d420a-d3fe-4c55-bb24-3353d28fb6b3"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-4-ownedParameter-6-upperValue"
                                 xmi:uuid="5ceecf98-4e25-4f3d-86c6-1d6be7434c92"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-5"
                               xmi:uuid="5e66af98-979d-4d66-a090-a913efa3ffa0"
                               name="sendOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-5"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-5-ownedParameter-1"
                                  xmi:uuid="8b3ecd74-3bb4-4b60-b5c9-34f0ae4c1cb1"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-5-ownedParameter-2"
                                  xmi:uuid="1fb1c648-5b84-45cd-ac0f-33188ed7260d"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6"
                               xmi:uuid="699bd9f8-6763-46a9-b118-31c5d3102fcb"
                               name="dispatchOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-6"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6-ownedComment"
                                xmi:uuid="0222b8d6-6878-4de1-8e87-d6868e36012b"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public dispatchOut (in operation : Operation, in onPort : Port) : Execution { // TODO: // Propagate the operation call through interaction points corresponding // to onPorts, following appropriate links, // This will result in calling dispatch(operation) on oppositeEnd found // from the links return null ; } return null ; }&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6-ownedParameter-1"
                                  xmi:uuid="0b04c86d-913c-4e67-b61e-4a102b335fc3"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6-ownedParameter-2"
                                  xmi:uuid="cf7ab40d-787d-4fa7-9a90-2527bb37f0f5"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-6-ownedParameter-3"
                                  xmi:uuid="579d9b2c-17bf-4357-96b3-7ec27fbb3c77"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-7"
                               xmi:uuid="902a4976-1da6-4add-bafd-936c2db9bc7a"
                               name="getFeatureValue"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-7"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-7-ownedParameter-1"
                                  xmi:uuid="43a736c0-d285-45b1-9e6e-fd09565f0ef4"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-7-ownedParameter-2"
                                  xmi:uuid="8c6bb7ff-d596-46d6-8bef-d6f7cdd51e4e"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-SimpleClassifiers-FeatureValue"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8"
                               xmi:uuid="4e79a0e6-5168-48d1-a837-47f83b9e8891"
                               name="setFeatureValue"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-8"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8-ownedParameter-1"
                                  xmi:uuid="e371ba57-2a10-4d92-b6e6-af80c9a37f52"
                                  name="feature"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8-ownedParameter-2"
                                  xmi:uuid="bb13a167-00e0-4905-a25f-853d5c990e65"
                                  name="values"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8-ownedParameter-2-lowerValue"
                                 xmi:uuid="a0c4547f-e817-48aa-8fc2-d78ecb9a5e43"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8-ownedParameter-2-upperValue"
                                 xmi:uuid="1e872d80-e5b3-4d89-a604-a076f7f82cf9"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-8-ownedParameter-3"
                                  xmi:uuid="95bc0469-cc0f-4707-b82b-cfa0e494ed85"
                                  name="position"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Integer"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-9"
                               xmi:uuid="9afe36c6-c32d-493c-bed2-af1802bfa224"
                               name="contains"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-9"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-9-ownedParameter-1"
                                  xmi:uuid="feadd5f0-62c8-4557-8f83-1163585fc347"
                                  name="object"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-9-ownedParameter-2"
                                  xmi:uuid="3a47dec9-2016-4937-a4a7-d1d2e6f539a5"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-10"
                               xmi:uuid="b0017324-b553-4ad3-b81c-a6a5336da5fa"
                               name="directlyContains"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-10"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-10-ownedParameter-1"
                                  xmi:uuid="ddd62823-df1a-41b1-9a9c-bc4cfb782166"
                                  name="object"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Object"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-10-ownedParameter-2"
                                  xmi:uuid="0798bc2a-fb90-4a59-9e0e-1401cea3c8d6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-11"
                               xmi:uuid="cdb5691c-2167-48d9-b2d1-fc2f4663df94"
                               name="getDirectContainers"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-11"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-11-ownedParameter"
                                  xmi:uuid="f1829d1e-3b6b-46bd-ba57-ba12b55a8022"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-11-ownedParameter-lowerValue"
                                 xmi:uuid="06b0094b-c0d3-4280-b61d-9226efcde9b1"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-11-ownedParameter-upperValue"
                                 xmi:uuid="10773022-453d-4918-a28e-6557fbcdcac5"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-12"
                               xmi:uuid="00b4a74a-e16e-4c53-b20d-1d5fdfd9f47b"
                               name="isOperationProvided"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-12"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-12-ownedParameter-1"
                                  xmi:uuid="94b4163c-7b2c-4695-8665-e6b1a5dee38b"
                                  name="reference"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-12-ownedParameter-2"
                                  xmi:uuid="c6066ee4-eaf9-4f6f-9ba7-716d01f616f8"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-12-ownedParameter-3"
                                  xmi:uuid="4c289d60-6d85-4cf8-aaaa-525193c1ffba"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-13"
                               xmi:uuid="98740445-ad1a-4b83-a896-ee21cbbd7d1c"
                               name="isOperationRequired"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-13"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-13-ownedParameter-1"
                                  xmi:uuid="72caebb0-49db-4eda-8e61-f419a3e5a16e"
                                  name="reference"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-13-ownedParameter-2"
                                  xmi:uuid="7d71266f-204e-4041-8036-5df346cd34f4"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-13-ownedParameter-3"
                                  xmi:uuid="5dc2775e-7355-4b59-b257-6e09c5495343"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-14"
                               xmi:uuid="4921791b-9ad0-4a77-aded-c5364b0b0fe5"
                               name="getLinkKind"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-14"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-14-ownedParameter-1"
                                  xmi:uuid="1a96c70a-9c71-4d94-b6f8-69d3e26ebb32"
                                  name="link"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-14-ownedParameter-2"
                                  xmi:uuid="ea02e1f8-6c65-4569-bddd-d88dc9cc60d0"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-14-ownedParameter-3"
                                  xmi:uuid="b1efcec9-8e6f-4be8-8252-654bfe5b5dfe"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15"
                               xmi:uuid="e2b4ffb4-81e8-4d36-9e9f-c561f8ebc4c9"
                               name="getLinks"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-15"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15-ownedParameter-1"
                                  xmi:uuid="487e2827-e523-45f6-9343-9185781af27c"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15-ownedParameter-2"
                                  xmi:uuid="6c6711cf-207b-4223-97d2-645229218b74"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link">
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15-ownedParameter-2-lowerValue"
                                 xmi:uuid="e37b58c1-2e6c-41fb-bf90-c259e1da48ac"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-15-ownedParameter-2-upperValue"
                                 xmi:uuid="4fc80f59-d0e8-4e01-84d1-b7d20c6a7f98"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-16"
                               xmi:uuid="1fc64740-978c-45f2-afc9-f9d782a0bb50"
                               name="hasValueForAFeature"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-16"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-16-ownedParameter-1"
                                  xmi:uuid="44739450-50f8-4ae9-9547-cb13dfab8fef"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-16-ownedParameter-2"
                                  xmi:uuid="04361a33-3e38-4c70-a0be-ffe9f1ead5fe"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-17"
                               xmi:uuid="f6fb3aa9-4e9f-4b89-9bff-3bab402cb8da"
                               name="sendOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-17"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-17-ownedParameter-1"
                                  xmi:uuid="b66e9566-50d7-4897-97df-7eca6d298408"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-17-ownedParameter-2"
                                  xmi:uuid="5a046dfe-7256-4a57-9587-77d7a565a4ed"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-18"
                               xmi:uuid="fd7f0c63-d245-426b-b5d1-f4aff67de55e"
                               name="dispatchOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-18"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-18-ownedParameter-1"
                                  xmi:uuid="32a4a4d0-6b27-4ca7-ae92-89b1a8e51db8"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-18-ownedParameter-2"
                                  xmi:uuid="6e8918f4-bf7b-4b09-8bba-5757bfa138b2"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-18-ownedParameter-3"
                                  xmi:uuid="b898f0ea-ee5d-49a9-a1f3-3433051dab58"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-19"
                               xmi:uuid="da6cc1ef-c933-4685-9dd3-536d88a7d26b"
                               name="dispatchIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-19"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-19-ownedParameter-1"
                                  xmi:uuid="082a2c13-e3d9-4ca6-a920-9a37bf567ece"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-19-ownedParameter-2"
                                  xmi:uuid="e1f1e6aa-c51a-4305-8430-4065b3a8bad8"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-19-ownedParameter-3"
                                  xmi:uuid="33c28f85-5d68-4b30-a036-2c2b643e86b6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-20"
                               xmi:uuid="35249054-e65a-4d08-9dfb-adac538dae81"
                               name="sendIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-20"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-20-ownedParameter-1"
                                  xmi:uuid="6f64785d-fa15-47ee-8169-654fdc8cea65"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-20-ownedParameter-2"
                                  xmi:uuid="2d86e11f-e47c-4074-b991-ef965eab30e2"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-21"
                               xmi:uuid="1b7d05bc-cda7-4d58-a176-9a3372643fae"
                               name="checkAllParents"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-21"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-21-ownedParameter-1"
                                  xmi:uuid="3032bba1-67b3-47dd-a495-b6b51e042beb"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-21-ownedParameter-2"
                                  xmi:uuid="6405f93a-97f0-4230-b13b-eaf4b01f98ed"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-21-ownedParameter-3"
                                  xmi:uuid="9867a7e3-3b37-4024-aa30-0fceb605443e"
                                  name="ReturnResult"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-22"
                               xmi:uuid="d50618b5-13b6-4208-9828-2a91a760fb1b"
                               name="isDescendant"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-22"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-22-ownedParameter-1"
                                  xmi:uuid="c7ad7b21-aee9-4b09-8274-1bbb0c2fc082"
                                  name="contact"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-22-ownedParameter-2"
                                  xmi:uuid="fab136a4-8f82-46ed-8e61-b1543807ab75"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-22-ownedParameter-3"
                                  xmi:uuid="0364c0fe-5131-4706-8fe1-1b71802b159c"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-23"
                               xmi:uuid="881bebb9-a114-45c2-aecf-a26ec453102e"
                               name="realizesInterface"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedBehavior-23"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-23-ownedParameter-1"
                                  xmi:uuid="4634623f-44d8-4e7c-9143-d05dda5e87d1"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-23-ownedParameter-2"
                                  xmi:uuid="62293e53-a972-49a1-a556-9d3751fbb743"
                                  name="interface_"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Interface"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object-ownedOperation-23-ownedParameter-3"
                                  xmi:uuid="9cb58778-21b0-45db-b60d-2931164936d5"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner"
                             xmi:uuid="bca1dcb4-9e7d-4e42-89b5-0f5555886dbb"
                             name="A_interactionPoint_owner">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner-interactionPoint"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-owner"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner-interactionPoint"
                         xmi:uuid="8659c3ad-faed-4a30-a293-2d2e7a5a2300"
                         name="interactionPoint"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"
                         association="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner-interactionPoint-lowerValue"
                              xmi:uuid="0d2db152-ab7f-4515-8ee8-3396c619c659"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner-interactionPoint-upperValue"
                              xmi:uuid="3ed1128a-298f-494a-ad5c-028c8f91795c"
                              value="*"/>
               </ownedEnd>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_referenceToCompositeStructure_compositeReferent"
                             xmi:uuid="27b4e71f-9a7f-4bed-82c4-b72e6737aa66"
                             name="A_referenceToCompositeStructure_compositeReferent">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-A_referenceToCompositeStructure_compositeReferent-referenceToCompositeStructure"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-compositeReferent"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-A_referenceToCompositeStructure_compositeReferent-referenceToCompositeStructure"
                         xmi:uuid="3bddda98-dfd8-4457-80c8-255b20581838"
                         name="referenceToCompositeStructure"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"
                         association="PSCS_Semantics-Semantics-StructuredClassifiers-A_referenceToCompositeStructure_compositeReferent"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8"
                             xmi:uuid="9dbd2139-4e4e-43c0-8ac1-dd4f2db8e606">
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence-onPort"/>
               <memberEnd xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8-ownedEnd"/>
               <ownedEnd xmi:type="uml:Property"
                         xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8-ownedEnd"
                         xmi:uuid="c3d9a7a0-30c6-40f4-a664-1539180c3cfe"
                         name="eventOccurrence"
                         visibility="public"
                         type="PSCS_Semantics-Semantics-CommonBehavior-CS_EventOccurrence"
                         association="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8">
                  <lowerValue xmi:type="uml:LiteralInteger"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8-ownedEnd-lowerValue"
                              xmi:uuid="4535b5c9-4f87-4396-afd9-73527c237296"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-packagedElement-8-ownedEnd-upperValue"
                              xmi:uuid="a76b9e1d-f3b4-4ba9-82ad-00ea19606a42"
                              value="*"/>
               </ownedEnd>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"
                             xmi:uuid="66b0afe6-e14e-4073-b5ef-a11a32098638"
                             name="CS_Reference">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedComment"
                             xmi:uuid="31083443-1daf-48cc-8e28-45d512b0985c"
                             body="This class extends fuml Reference with specific operations for managing request propagation through ports, from the environment to the internals of the referent object, or from the referent objet to its environment. (NOTE: Addresses requirement R1 &#34;The target value of an invocation action may also be a port. In this case, the invocation request is sent to the object owning this port as identified by the port identity, and is, upon arrival, handled as described in &#34;Port&#34; clause&#34;, and R2 &#34;Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.&#34;)"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-generalization"
                               xmi:uuid="0940d56c-b3bb-43ff-9c75-058f77c139e5">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-1"
                              xmi:uuid="d511f26b-4de3-4e50-80f4-0696b278ad10"
                              name="dispatchIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2">
                  <body>		//Delegates dispatching to composite referent
		return this.compositeReferent.dispatchIn(operation, interactionPoint) ;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-1-ownedParameter-1"
                                  xmi:uuid="7f535925-7421-4a3d-b866-28272f305370"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-1-ownedParameter-2"
                                  xmi:uuid="f1ff5e24-6446-4e23-b8f7-59b558b9cc09"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-1-ownedParameter-3"
                                  xmi:uuid="20e423ab-5da7-410f-a733-a46f08a978d8"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-2"
                              xmi:uuid="95a1ab4e-417a-4aee-836e-59e7cae143cd"
                              name="sendIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-3">
                  <body>// delegates sending to composite referent

this.compositeReferent.sendIn(eventOccurrence, interactionPoint);</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="a7623e95-a711-4e85-bb44-5f9c9fc9cec0"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-2-ownedParameter-2"
                                  xmi:uuid="8d6e304e-41b6-4faa-81ee-e2bbc784aaa4"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-3"
                              xmi:uuid="048d7241-efeb-49f7-b6aa-4a0f1218f3ff"
                              name="sendOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-4">
                  <body>// delegates sending to composite referent

this.compositeReferent.sendOut(eventOccurrence, onPort); 
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-3-ownedParameter-1"
                                  xmi:uuid="35236304-818a-468b-8130-c38319841cd0"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-3-ownedParameter-2"
                                  xmi:uuid="b81428ee-b5fe-4b04-97e7-030e6355a165"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-4"
                              xmi:uuid="8637aed0-e55d-43c8-8a84-bd19dbf6ea0d"
                              name="dispatchOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5">
                  <body>		// delegates dispatching to composite referent
		return this.compositeReferent.dispatchOut(operation, onPort) ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-4-ownedParameter-1"
                                  xmi:uuid="0147e6ce-d53c-42d4-995e-f1313952b6d5"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-4-ownedParameter-2"
                                  xmi:uuid="9dd5bb1a-5fb9-4c32-ae80-de05df56a640"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-4-ownedParameter-3"
                                  xmi:uuid="21c7ba3a-7e77-43a7-84d1-f4a10224096e"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-5"
                              xmi:uuid="3b311a4d-a416-4e71-a65a-6f7fa57c62f0"
                              name="dispatchIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-6">
                  <body>		// delegates dispatching to composite referent
		return this.compositeReferent.dispatchIn(operation, onPort) ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-5-ownedParameter-1"
                                  xmi:uuid="2f2bccd6-b4f7-4d33-a82c-1b11af294203"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-5-ownedParameter-2"
                                  xmi:uuid="56d70e17-593f-4499-b1c4-9e841feadf6a"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-5-ownedParameter-3"
                                  xmi:uuid="c414ad2d-98f7-4f93-84ae-490062e8bf07"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-6"
                              xmi:uuid="0f48ff6b-51b1-4eb3-a3a5-14e018569a94"
                              name="sendIn"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-7">
                  <body>// delegates sending to composite referent

this.compositeReferent.sendIn(eventOccurrence, onPort);</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-6-ownedParameter-1"
                                  xmi:uuid="4cad3dae-b191-445e-937a-30908675e5a7"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-6-ownedParameter-2"
                                  xmi:uuid="cf7f1c41-8202-4fec-833f-8a9c88a2cffe"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-7"
                              xmi:uuid="25a2ef0b-fb00-499a-b17c-f089cfeb39d5"
                              name="dispatchOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-8">
                  <body>		// Delegates dispatching (through the interaction point, to the environment) 
		// to compositeReferent
		return this.compositeReferent.dispatchOut(operation, interactionPoint) ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-7-ownedParameter-1"
                                  xmi:uuid="34afbc01-a024-4200-bccb-52ab1ff5a370"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-7-ownedParameter-2"
                                  xmi:uuid="9a28d947-5176-4592-b00f-38fe37fb2303"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-7-ownedParameter-3"
                                  xmi:uuid="1b40a3ab-6b66-46f6-b5ee-81794565731a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-8"
                              xmi:uuid="5dfe4df0-fc43-487b-a1c1-f71fb1c2b40f"
                              name="sendOut"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-9">
                  <body>// Delegates sending (through the interaction point, to the environment)
// to compositeReferent

this.compositeReferent.sendOut(eventOccurrence, interactionPoint); </body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-8-ownedParameter-1"
                                  xmi:uuid="0e59480d-77ef-419c-8ab4-66098177af32"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-8-ownedParameter-2"
                                  xmi:uuid="8ee09d89-16d0-42a6-b881-3ede43aef9e3"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-9"
                              xmi:uuid="34aa7367-424f-43fc-896f-61021fc0de4c"
                              name="copy"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-1">
                  <body>// Create a new reference with the same referent and composite referent as this reference.
CS_Reference newValue = new CS_Reference();
newValue.referent = this.referent;
newValue.compositeReferent = this.compositeReferent;
return newValue;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-9-ownedParameter"
                                  xmi:uuid="ccf075ba-79d6-4e07-bd70-84d98d3d38b5"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-compositeReferent"
                               xmi:uuid="64e6b3f9-e956-47e4-b8b9-e26f04350af2"
                               name="compositeReferent"
                               visibility="public"
                               type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Object"
                               association="PSCS_Semantics-Semantics-StructuredClassifiers-A_referenceToCompositeStructure_compositeReferent">
                  <subsettedProperty href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference-referent"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-compositeReferent-ownedComment"
                                xmi:uuid="ec428156-1802-4752-a53d-82c6033cfbb5"
                                body="The composite object referenced by this ReferenceToCompositeStructure. This property subsets Reference::referent."/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-1"
                               xmi:uuid="bee198e9-0954-41c3-bd44-5640df4a2145"
                               name="copy"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-9"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-1-ownedParameter"
                                  xmi:uuid="e5d65c07-7d1c-45fd-92f1-8d53ab4c946c"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2"
                               xmi:uuid="aafeeab1-fc88-4464-8c78-1c849522ebec"
                               name="dispatchIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2-ownedComment"
                                xmi:uuid="74f90de0-8977-4790-befa-0c47c7f5f987"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public dispatchIn (in operation : Operation, in interactionPoint : InteractionPoint) : Execution { //Delegates dispatching to composite referent return this.compositeReferent.dispatchIn(operation, interactionPoint) ; }Referent.dispatchIn(operation, interactionPoint) ; }                                                                         interactionPoint) ;&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="a18ed8f9-4769-41b0-8ff5-c1d0f7f7f290"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="121c5317-1ef5-4665-85f1-ccd43178004f"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-2-ownedParameter-3"
                                  xmi:uuid="4db6eabc-8859-46e1-968d-e850e4dde79c"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-3"
                               xmi:uuid="9fb741dd-1e4c-42b2-bc76-75d2436f9567"
                               name="sendIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-2"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-3-ownedComment"
                                xmi:uuid="d76bc15e-ed20-4e7c-8d25-0d2d367c2524"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public sendIn (in signalInstance : SignalInstance, in interactionPoint : InteractionPoint) { // delegates sending to composite referent this.compositeReferent.sendIn(signalInstance, interactionPoint) ; }.sendIn(signalInstance, interactionPoint) ; }}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-3-ownedParameter-1"
                                  xmi:uuid="c8175c7b-5067-4471-a7e1-ddd6ec1e0213"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-3-ownedParameter-2"
                                  xmi:uuid="42c7bedd-f3d4-46ea-a6ee-46eef997a4ae"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-4"
                               xmi:uuid="17cb9381-88e1-4f9b-b036-909b73c96c5a"
                               name="sendOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-3"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-4-ownedComment"
                                xmi:uuid="93c76988-dbda-4a19-aa3c-234080958234"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public sendOut(in signalInstance : SignalInstance, in onPort : Port) { // Delegates sending (through the port, to the environment) // to compositeReferent this.compositeReferent.sendOut(signalInstance, onPort) ; }rt) ; }}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-4-ownedParameter-1"
                                  xmi:uuid="9b51228f-142f-485f-a591-29cfcbd6c2a8"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-4-ownedParameter-2"
                                  xmi:uuid="a629dd95-080f-48d8-a54a-34905946951c"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5"
                               xmi:uuid="4b17cbba-19e6-4f02-a9d4-3d616b8dc9d3"
                               name="dispatchOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-4"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5-ownedComment"
                                xmi:uuid="b9f69c98-7b28-4ea0-995e-9788802b65b2"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public dispatchOut (in operation : Operation, in onPort : Port) : Execution { // Delegates dispatching (through the port, to the environment) // to compositeReferent return this.compositeReferent.dispatchOut(operation, onPort) ; }ort) ; }}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5-ownedParameter-1"
                                  xmi:uuid="f9796201-6528-4c5a-ae86-c67169bf5f3b"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5-ownedParameter-2"
                                  xmi:uuid="6558f9c2-fe0b-4b30-82c8-2eaa6a20b3b0"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-5-ownedParameter-3"
                                  xmi:uuid="ab4d5ab4-a053-40b4-acbb-4a7a89ff6398"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-6"
                               xmi:uuid="b293cde3-58c3-416c-8637-136ba9e9f2eb"
                               name="dispatchIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-5"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-6-ownedParameter-1"
                                  xmi:uuid="4aa80301-a2b7-4539-a031-61ff00996f71"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-6-ownedParameter-2"
                                  xmi:uuid="67194a12-ce2c-44ca-8328-9fff2b30abf9"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-6-ownedParameter-3"
                                  xmi:uuid="23a87e7d-3afe-4d00-94a6-b38f9e7a169a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-7"
                               xmi:uuid="bad02215-e496-4c3d-9121-07fae79be150"
                               name="sendIn"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-6"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-7-ownedParameter-1"
                                  xmi:uuid="458d2917-196a-461b-b68a-cc94e9da1d8c"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-7-ownedParameter-2"
                                  xmi:uuid="4e8bdd66-2875-44d5-8a81-2f81b8c26c04"
                                  name="onPort"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-8"
                               xmi:uuid="d4f2e28e-32d2-4d23-ab9b-0fcb73e372aa"
                               name="dispatchOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-7"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-8-ownedParameter-1"
                                  xmi:uuid="44751167-68ca-449c-9789-16074b753a69"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-8-ownedParameter-2"
                                  xmi:uuid="0ee9ebff-7165-4081-9331-79dc2071333f"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-8-ownedParameter-3"
                                  xmi:uuid="57875089-ff4f-43d3-9a4f-fc39f08f4ad2"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-9"
                               xmi:uuid="963cc478-3e87-4845-9386-9142a360a63c"
                               name="sendOut"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedBehavior-8"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-9-ownedParameter-1"
                                  xmi:uuid="ae95be3a-93c2-4726-b1a1-bbc4bfeb956f"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference-ownedOperation-9-ownedParameter-2"
                                  xmi:uuid="7c5a8873-4f50-48a1-883f-6be87db69be1"
                                  name="interactionPoint"
                                  visibility="public"
                                  effect="create"
                                  type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"/>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Enumeration"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind"
                             xmi:uuid="dcd66c34-7b71-4887-b69a-4bb851ebe060"
                             name="CS_LinkKind">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind-ownedComment"
                             xmi:uuid="c10a7bef-5d60-4fb5-8612-06e1319d4f68"
                             body="This enumeration enables to characterize a CS_Link with respect to given CS_Object and CS_InteractionPoint. If the given interaction point belongs to the given object, and if the given interaction point is used as an end of the link, then the links targets the environment of the object (enumeration literal ToEnvironment) if all the feature values of the link (but one for the interaction point) refer to values which are not themselves values for features of the interaction point. If all the feature values of the link refer to values which are themselves values for features of the interaction point, the link targets the internals of the object (enumeration literal ToInternal). Otherwise, the link has no particular meaning in the context defined by the object and the interaction point (enumeration literal None)."/>
               <ownedLiteral xmi:type="uml:EnumerationLiteral"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind-ToEnvironment"
                             xmi:uuid="e69d3752-172d-432e-91da-a8ef0f172540"
                             name="ToEnvironment"/>
               <ownedLiteral xmi:type="uml:EnumerationLiteral"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind-ToInternal"
                             xmi:uuid="2fba2869-43fe-441e-acd1-b03ccd6b686f"
                             name="ToInternal"/>
               <ownedLiteral xmi:type="uml:EnumerationLiteral"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_LinkKind-None"
                             xmi:uuid="b578cc1c-118e-4280-ab19-d1b7fed99046"
                             name="None"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint"
                             xmi:uuid="5eb8222f-2044-4a20-86f5-263c60f6a28c"
                             name="CS_InteractionPoint">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedComment"
                             xmi:uuid="948bda3c-c00c-40b4-a19e-29b9679b3a5b"
                             body="A CS_InteractionPoint represents the runtime manifestation of a Reference to an Object playing the role of a Port. More specifically, it overrides operation dispatching and signal receptions in order to capture the specific propagation semantics of requests targeting a port. NOTE: This class is related to the following requirements: - R1. The target value of an invocation action may also be a port. In this case, the invocation request is sent to the object owning this port as identified by the port identity, and is, upon arrival, handled as described in &#34;Port&#34; clausese"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-generalization"
                               xmi:uuid="40b2b3f0-73ae-4a34-9bdd-104b1709501e">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1"
                              xmi:uuid="eb430de0-0d37-4586-bc3a-f53831f275b3"
                              name="startBehavior"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1">
                  <body>// Overriden to do nothing
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1-ownedParameter-1"
                                  xmi:uuid="b2b7ddb3-fd80-4287-89bc-d0d60c94e1ad"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1-ownedParameter-1-lowerValue"
                                 xmi:uuid="44997364-e4db-4cb3-ba42-84f36171004c"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1-ownedParameter-2"
                                  xmi:uuid="8edd63d6-3049-476d-bbfb-669edaa5ea92"
                                  name="inputs"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1-ownedParameter-2-lowerValue"
                                 xmi:uuid="f70884ea-1955-4d75-816b-762b98c0a843"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1-ownedParameter-2-upperValue"
                                 xmi:uuid="61f87d85-dd1d-4eda-ae33-eb3f4eed4b45"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-2"
                              xmi:uuid="40a28c04-9f4b-499a-b1aa-81d933c05cbe"
                              name="dispatch"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-2">
                  <body>		// Delegates dispatching to the owning object
		return this.owner.dispatchIn(operation, this) ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="84dd8ff2-18b9-46ed-964c-eb67d78df5a3"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-dispatch-result"
                                  xmi:uuid="3a4f24f6-9e8b-4427-be94-f36fbe190f2f"
                                  name="result"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-3"
                              xmi:uuid="5320a0dd-399d-494e-928f-ea82f3655cab"
                              name="send"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-3">
                  <body>// An event occurrence that passes through a CS_InteractionPoint is
// (if necessary) wrapped in a CS_EventOccurrence. This event occurrence
// is then sent to the owning object.

CS_EventOccurrence wrappingEventOccurrence = null;
if(eventOccurrence instanceof CS_EventOccurrence){
	wrappingEventOccurrence = (CS_EventOccurrence) eventOccurrence; 
}else{
	wrappingEventOccurrence = new CS_EventOccurrence();
	wrappingEventOccurrence.wrappedEventOccurrence = eventOccurrence;
}
wrappingEventOccurrence.interactionPoint = this;
this.owner.sendIn(wrappingEventOccurrence, this);
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-3-ownedParameter"
                                  xmi:uuid="4c422de1-99ac-4dcf-bed7-e4f4220a7c62"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-4"
                              xmi:uuid="82d89916-19f8-4c9e-9e27-a71dc9749a8c"
                              name="checkAllParents"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-4">
                  <body>// Delegates the type checking to the reference

return this.referent.checkAllParents(type, classifier);
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-4-ownedParameter-1"
                                  xmi:uuid="29c57bb0-8b0e-49da-a9c9-3c2f3c378868"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-4-ownedParameter-2"
                                  xmi:uuid="3264b50e-b4c9-4dab-b75f-d4de67239c8e"
                                  name="ReturnResult"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-4-ownedParameter-3"
                                  xmi:uuid="02ba52ea-f14b-4397-b870-15573cf56108"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-owner"
                               xmi:uuid="94a9cad8-5e5a-4ae3-8d65-fdfc014b7547"
                               name="owner"
                               visibility="public"
                               type="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Reference"
                               association="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_owner">
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-owner-ownedComment"
                                xmi:uuid="fc923c94-65eb-4ef4-b849-e973cac1e516"
                                body="Represents the Reference to the CompositeObject owning this InteractionPort. NOTE: This is introduced to address requirement R3 (It represents the &#34;link from that instance to the instance of the owning classifier [...] through which communication is forwarded to the instance of the owning classifier or through which the owning classifier communicates)"/>
               </ownedAttribute>
               <ownedAttribute xmi:type="uml:Property"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-definingPort"
                               xmi:uuid="22e741bd-51b5-4a19-8b78-620db6d09f60"
                               name="definingPort"
                               visibility="public"
                               association="PSCS_Semantics-Semantics-StructuredClassifiers-A_interactionPoint_definingPort">
                  <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Port"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-definingPort-ownedComment"
                                xmi:uuid="2a2d9891-0c53-4351-a839-cac21352ad3b"
                                body="The Port for which this InteractionPoint is a runtime manifestation"/>
               </ownedAttribute>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1"
                               xmi:uuid="a528dba6-dc07-4d70-b228-b4651f160dc8"
                               name="startBehavior"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-1"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedComment"
                                xmi:uuid="6a35689d-8f6e-4109-90ae-fafcfbc4069c"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public startBehavior (in classifier : Class [0..1], in inputs : ParameterValue [*]) { // Overriden to do nothing }lue [*]) { // Overriden to do nothing }g&#xA;&#xA;}"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedParameter-1"
                                  xmi:uuid="33a92c57-936a-4f27-b0ee-db08c6ff247b"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Class"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedParameter-1-lowerValue"
                                 xmi:uuid="aa4f35ab-e54a-4ec7-9c39-1959608b36eb"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedParameter-2"
                                  xmi:uuid="8d65241b-b850-486b-b23f-b8a601daed86"
                                  name="inputs"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-ParameterValue"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedParameter-2-lowerValue"
                                 xmi:uuid="31110bf0-1a51-4916-acb4-c8b906fc4e9a"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-1-ownedParameter-2-upperValue"
                                 xmi:uuid="439ba59d-36fb-4aea-9ff1-636528fa40f0"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-2"
                               xmi:uuid="896ec030-3e48-4ed9-8f1c-b2947f8a01a4"
                               name="dispatch"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-2"/>
                  <ownedComment xmi:type="uml:Comment"
                                xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-2-ownedComment"
                                xmi:uuid="f6b1b337-0137-4835-ac9b-9dac4c551ece"
                                body="&lt;&lt;TextualRepresentation&gt;&gt;public dispatch (in operation : Operation ) : Execution { // Delegates dispatching to the owning object return this.owner.dispatchIn(operation, this) ; }; }"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="78f8fd86-b9e5-4a95-bf73-0d4ad0527640"
                                  name="operation"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Operation"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="0440b063-4a1d-4d00-849e-50740deb6382"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-Execution"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-3"
                               xmi:uuid="6ff01dab-3e72-4c04-bbbb-64ad80b66b4d"
                               name="send"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-3"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-3-ownedParameter"
                                  xmi:uuid="ae39cf20-da81-473f-8a2c-df9ef20b8eaa"
                                  name="eventOccurrence"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-CommonBehavior-EventOccurrence"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-4"
                               xmi:uuid="0e13b067-0851-4956-835f-7f8b27efbfb2"
                               name="checkAllParents"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedBehavior-4"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-4-ownedParameter-1"
                                  xmi:uuid="48278f49-f4b3-4a78-9204-00fba50cf434"
                                  name="type"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-4-ownedParameter-2"
                                  xmi:uuid="0aef5dd2-f993-45ae-a585-f47996ed3fd2"
                                  name="classifier"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#Classifier"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_InteractionPoint-ownedOperation-4-ownedParameter-3"
                                  xmi:uuid="68f5de10-d857-4502-bca5-6c58136c3cb6"
                                  name="ReturnResult"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link"
                             xmi:uuid="cf3d305b-b323-411c-83e8-efc77d07d7c9"
                             name="CS_Link">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedComment"
                             xmi:uuid="73f68a5c-df12-4163-84e7-c9f9563baa74"
                             body="CS_Link extends Link with the ability to specify that this association instance plays a particular Connector. NOTE: The execution model described in this specification makes the hypothesis that connectors are necessarily typed by an Association.."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-generalization"
                               xmi:uuid="21e8bcc9-36f1-46d7-b51a-9381cc6217ff">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Link"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAfeature"
                              xmi:uuid="02ce890f-7225-4af7-8168-6f292ca243f8"
                              name="hasValueForAfeature"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAFeature">
                  <body>		// Returns true if the given value object is used as a value for a FeatureValue of this link
		FeatureValueList allFeatureValues = this.getFeatureValues() ;
		Integer i = 1 ;
		boolean isAValue = false ;
		while (i &lt;= allFeatureValues.size() &amp;&amp; !isAValue) {
			FeatureValue featureValue = allFeatureValues.getValue(i-1);
			isAValue = !featureValue.values.isEmpty() &amp;&amp; featureValue.values.getValue(0).equals(value) ;
			i = i + 1 ;
		}
		return isAValue ;
</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAfeature-value"
                                  xmi:uuid="ff45c862-b89e-4259-900c-4fdc22213c32"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAfeature-result"
                                  xmi:uuid="42512aa0-90af-4c4a-a42f-e9f42b4957f6"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedBehavior-2"
                              xmi:uuid="f9cb2d2c-1883-475e-81bc-fa9108ea16a9"
                              name="getFeature"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedOperation-2">
                  <body>FeatureValueList allFeatureValues = this.getFeatureValues() ;
		Integer i = 1 ;
		StructuralFeature feature = null ;
		while (i &lt;= allFeatureValues.size() &amp;&amp; feature == null) {
			FeatureValue featureValue = allFeatureValues.get(i-1);
			if (!featureValue.values.isEmpty() &amp;&amp; featureValue.values.get(0).equals(value)) {
				feature = featureValue.feature ;
			}
			i = i + 1 ;
		}
		return feature ;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedBehavior-2-ownedParameter-1"
                                  xmi:uuid="4e32c7e0-1890-4398-9cfb-10eb9a59fbeb"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedBehavior-2-ownedParameter-2"
                                  xmi:uuid="38b825d5-3258-4da7-86a1-2b6119c3cfb1"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAFeature"
                               xmi:uuid="943b4e38-88b7-4b3b-b479-950410457865"
                               name="hasValueForAFeature"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAfeature"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAFeature-value"
                                  xmi:uuid="e4923b21-8dfc-4d67-8176-2b7843940a67"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-hasValueForAFeature-result"
                                  xmi:uuid="6fe0377b-5902-41bd-9958-ccaa9d3c5b10"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#Boolean"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedOperation-2"
                               xmi:uuid="7a851f0d-3e58-45b8-bc79-ce3f56ac5976"
                               name="getFeature"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedBehavior-2"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedOperation-2-ownedParameter-1"
                                  xmi:uuid="1fb6840e-542f-4735-bfe8-1257a6d6caea"
                                  name="value"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_Link-ownedOperation-2-ownedParameter-2"
                                  xmi:uuid="6746d0cb-e37f-4e7d-84eb-a2635e877213"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/UML.xmi#StructuralFeature"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy"
                             xmi:uuid="5ea954d3-7337-4a51-8a0b-1b6944f2b9c4"
                             name="CS_RequestPropagationStrategy"
                             isAbstract="true">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-ownedComment"
                             xmi:uuid="0d28c357-d693-420e-ae49-3f99c0fe4982"
                             body="This semantic strategy is introduced to enable semantic variants related to propagation of requests through connectors, in the case where multiple propagation paths are possible. Concrete strategy classes shall provide a behavior for abstract operation select."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-generalization"
                               xmi:uuid="57bbd0b3-8f6c-4b62-9fa8-33c7df7fe095">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticStrategy"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-ownedBehavior"
                              xmi:uuid="0b994e15-178c-4d77-9e7c-434df8433b4d"
                              name="getName"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-ownedOperation-1">
                  <body>		// a CS_RequestPropagationStrategy are always named "requestPropagation"
		return "requestPropagation";
</body>
                  <language>Java</language>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-ownedOperation-1"
                               xmi:uuid="01d470c7-4f39-4558-b717-fd4285f261aa"
                               name="getName"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-getName-result"
                                  xmi:uuid="bdf176aa-c488-40cf-b976-d26a526ce3d9"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi#String"/>
                  </ownedParameter>
               </ownedOperation>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select"
                               xmi:uuid="8a9e221a-6c6c-44f4-bf45-33a40f4750fb"
                               name="select"
                               visibility="public"
                               isAbstract="true">
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-potentialTargets"
                                  xmi:uuid="4d75afa8-99c2-4651-88f6-d30c833e9ca6"
                                  name="potentialTargets"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-potentialTargets-lowerValue"
                                 xmi:uuid="05c7c3be-1ba7-4df0-9d6c-707bc55c50c5"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-potentialTargets-upperValue"
                                 xmi:uuid="f76d2e89-ed0e-4746-b4da-cf86c9706ee4"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-context"
                                  xmi:uuid="0f6fe85c-e043-4243-b9d3-aadf84377023"
                                  name="context"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticVisitor"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-result"
                                  xmi:uuid="14e24027-9bdc-4514-94fe-0b8d0161208a"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-result-lowerValue"
                                 xmi:uuid="b3f5c8ae-247e-4a8f-a9a6-0f1a3ff7a17a"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy-select-result-upperValue"
                                 xmi:uuid="c413b508-862e-415e-ad4e-2cd20b83399f"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy"
                             xmi:uuid="aeebd257-01b4-4d50-a3b9-b4da31485352"
                             name="CS_DefaultRequestPropagationStrategy">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedComment"
                             xmi:uuid="09ddb557-3ad6-4733-8d33-9fa9d02328d7"
                             body="This class proposes a basic semantic variant for the semantic variation point captured by CS_RequestPropagationSrategy. This semantic variants consists in broadcasting the request to all possible targets in the case where the request concerns a signal sending. In the case where the request concerns an operation call, only the first target is kept."/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-generalization"
                               xmi:uuid="ebae26f0-9313-4522-88a2-64c7eb8d6324"
                               general="PSCS_Semantics-Semantics-StructuredClassifiers-CS_RequestPropagationStrategy"/>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior"
                              xmi:uuid="19c13dc9-10ff-4175-8f47-318af377a636"
                              name="select"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation">
                  <body>		// returns all potential targets in the case where the context is a SendSignalActionActivation
		// returns the first potential target in the case where the context is anything else
		ReferenceList selectedTargets = new ReferenceList() ;
		if (context instanceof SendSignalActionActivation) {
			for (int i = 0 ; i &lt; potentialTargets.size() ; i++) {
				selectedTargets.addValue(potentialTargets.getValue(i)) ;
			}
		}
		else { 
			if (potentialTargets.size() &gt;= 1) {
				selectedTargets.addValue(potentialTargets.get(0)) ;
			}
		}
		return selectedTargets;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-1"
                                  xmi:uuid="3fe479dc-4a8d-4052-b1fc-e358346c007a"
                                  name="potentialTargets"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-1-lowerValue"
                                 xmi:uuid="d202b5ab-8eed-4e00-a6a1-dfef17036516"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-1-upperValue"
                                 xmi:uuid="5fae40b3-980d-46dd-a9c3-d460c066ba46"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-select-semanticVisitor"
                                  xmi:uuid="fa7c403c-a0b0-42a7-9b4f-4e9a2e643469"
                                  name="semanticVisitor"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticVisitor"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-3"
                                  xmi:uuid="900bd34c-53af-4a4f-97d9-69f5fccff015"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-3-lowerValue"
                                 xmi:uuid="4ae67258-8853-445f-aa23-322d0099f783"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior-ownedParameter-3-upperValue"
                                 xmi:uuid="3daa9369-6fb6-4979-9cb7-fd9cfeb4881b"
                                 value="*"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation"
                               xmi:uuid="68001b2f-5e19-442d-99c9-4a8e3f166548"
                               name="select"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-1"
                                  xmi:uuid="5bdc965f-6570-4664-974e-7e86357268c0"
                                  name="potentialTargets"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-1-lowerValue"
                                 xmi:uuid="39051618-9573-4794-a71e-854dd3260b69"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-1-upperValue"
                                 xmi:uuid="60827931-bfc0-4c2f-b515-0d8eef0378fe"
                                 value="*"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-select-context"
                                  xmi:uuid="7cc186dc-4421-4dd0-b3c6-f15655be4469"
                                  name="context"
                                  visibility="public"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Loci-SemanticVisitor"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-3"
                                  xmi:uuid="faf9dbe5-24dc-43a1-9329-c008db7932d1"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-StructuredClassifiers-Reference"/>
                     <lowerValue xmi:type="uml:LiteralInteger"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-3-lowerValue"
                                 xmi:uuid="9a33591b-7a11-4ba3-9945-324433c30f4b"/>
                     <upperValue xmi:type="uml:LiteralUnlimitedNatural"
                                 xmi:id="PSCS_Semantics-Semantics-StructuredClassifiers-CS_DefaultRequestPropagationStrategy-ownedOperation-ownedParameter-3-upperValue"
                                 xmi:uuid="408c0a24-3227-40bc-88db-dd1a6f5f9cae"
                                 value="*"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
         </packagedElement>
         <packagedElement xmi:type="uml:Package" xmi:id="PSCS_Semantics-Semantics-Classification"
                          xmi:uuid="643aa34c-3f1d-4144-bc64-a828e055a966"
                          name="Classification">
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Classification-packageImport-1"
                           xmi:uuid="e978bd01-e2ab-48be-8a7a-41d434a205d6"
                           importedPackage="PSCS_Semantics-Semantics-Values"/>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Classification-packageImport-2"
                           xmi:uuid="fd14f5d9-355c-4172-af15-128c956c394e">
               <importedPackage href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Classification"/>
            </packageImport>
            <packageImport xmi:type="uml:PackageImport"
                           xmi:id="PSCS_Semantics-Semantics-Classification-packageImport-3"
                           xmi:uuid="ddf4dc20-f01c-4741-a580-49b2d3156fd6"
                           visibility="private"
                           importedPackage="PSCS_Semantics-Semantics-StructuredClassifiers"/>
            <packagedElement xmi:type="uml:Class"
                             xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation"
                             xmi:uuid="04dc3249-20bd-4802-8c8c-023db1284a1d"
                             name="CS_InstanceValueEvaluation">
               <ownedComment xmi:type="uml:Comment"
                             xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedComment"
                             xmi:uuid="dd7abbd9-1a9b-4a87-ad84-512afa7aa8ae"
                             body="Extends fUML semantics in the sense that when the instance specification is for an object which is not typed by a Behavior, a CS_Reference (to a CS_Object) is produced instead of a Reference (to an Object)"/>
               <generalization xmi:type="uml:Generalization"
                               xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-generalization"
                               xmi:uuid="70bd81dc-063f-4ff2-95ed-160e2dc2d611">
                  <general href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-InstanceValueEvaluation"/>
               </generalization>
               <ownedBehavior xmi:type="uml:OpaqueBehavior"
                              xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedBehavior"
                              xmi:uuid="281ebcb2-1032-458c-af81-4103bb98a18a"
                              name="evaluate"
                              isReentrant="false"
                              specification="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedOperation">
                  <body>		// If the instance specification is for an enumeration, then return the
		// identified enumeration literal.
		// 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.
		// If the instance specification is for an object, then create an object
		// at the current locus with the specified types.
		// Set each feature of the created value to the result of evaluating the
		// value specifications for the specified slot for the feature.
		// Extends fUML semantics in the sense that when the instance specification
		// is for an object which is not typed by a Behaviore, A CS_Reference (to a 
		// CS_Object) is produced instead of a Reference (to an Object)

		// Debug.println("[evaluate] InstanceValueEvaluation...");

		InstanceSpecification instance = ((InstanceValue) this.specification).instance;
		ClassifierList types = instance.classifier;
		Classifier myType = types.getValue(0);

		Debug.println("[evaluate] type = " + myType.name);

		Value value;
		if (instance instanceof EnumerationLiteral) {
			// Debug.println("[evaluate] Type is an enumeration.");
			EnumerationValue enumerationValue = new EnumerationValue();
			enumerationValue.type = (Enumeration) myType;
			enumerationValue.literal = (EnumerationLiteral) instance;
			value = enumerationValue;
		} 
		else {
			StructuredValue structuredValue = null;

			if (myType instanceof DataType) {
				// Debug.println("[evaluate] Type is a data type.");
				DataValue dataValue = new DataValue();
				dataValue.type = (DataType) myType;
				structuredValue = dataValue;
			} 
			else {
				Object_ object = null;
				if (myType instanceof Behavior) {
					// Debug.println("[evaluate] Type is a behavior.");
					object = this.locus.factory.createExecution(
							(Behavior) myType, null);
				} 
				else {
					// Debug.println("[evaluate] Type is a class.");
					object = new CS_Object();
					for (int i = 0; i &lt; types.size(); i++) {
						Classifier type = types.getValue(i);
						object.types.addValue((Class_) type);
					}
				}

				this.locus.add(object);

				Reference reference ;
				if (object instanceof CS_Object) {
					reference = new CS_Reference();
					((CS_Reference)reference).compositeReferent = (CS_Object)object ;
				}
				else {
					reference = new Reference() ;
				}
				reference.referent = object;
				structuredValue = reference;
			}

			structuredValue.createFeatureValues();

			// Debug.println("[evaluate] " + instance.slot.size() +
			// " slot(s).");

			SlotList instanceSlots = instance.slot;
			for (int i = 0; i &lt; instanceSlots.size(); i++) {
				Slot slot = instanceSlots.getValue(i);
				ValueList values = new ValueList();

				// Debug.println("[evaluate] feature = " +
				// slot.definingFeature.name + ", " + slot.value.size() +
				// " value(s).");
				ValueSpecificationList slotValues = slot.value;
				for (int j = 0; j &lt; slotValues.size(); j++) {
					ValueSpecification slotValue = slotValues.getValue(j);
					// Debug.println("[evaluate] Value = " +
					// slotValue.getClass().getName());
					values.addValue(this.locus.executor.evaluate(slotValue));
				}
				structuredValue.setFeatureValue(slot.definingFeature, values, 0);
			}

			value = structuredValue;
		}

		return value;</body>
                  <language>Java</language>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedBehavior-ownedParameter"
                                  xmi:uuid="48046031-49ff-4ed3-a52f-bfac5a7c2f89"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedBehavior>
               <ownedOperation xmi:type="uml:Operation"
                               xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedOperation"
                               xmi:uuid="33496323-2a58-4053-b289-e5353fed0a3d"
                               name="evaluate"
                               visibility="public">
                  <method xmi:idref="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedBehavior"/>
                  <ownedParameter xmi:type="uml:Parameter"
                                  xmi:id="PSCS_Semantics-Semantics-Classification-CS_InstanceValueEvaluation-ownedOperation-ownedParameter"
                                  xmi:uuid="cf2ef3fa-1460-4e58-915c-c79e37a44915"
                                  name="result"
                                  visibility="public"
                                  direction="return"
                                  effect="create">
                     <type href="http://www.omg.org/spec/FUML/20180501/fUML_Semantics.xmi#fUML_Semantics-Semantics-Values-Value"/>
                  </ownedParameter>
               </ownedOperation>
            </packagedElement>
         </packagedElement>
      </packagedElement>
   </uml:Model>
</xmi:XMI>